用户在 java 中输入文本文件
User input into a text file in java
我希望用户能够将多行文本复制并粘贴到控制台,然后将其保存到特定的文本文件("weather.text" 在本例中,该文件位于同一个包)。我已经在这个简单的任务上工作了几个小时,但解决方案却让我望而却步。我是 java 的新手,所以提前致歉。
这个静态函数是从主启动器 class 调用的。
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.util.Scanner;
public static void writeFile()
{
//set up for the user input
Reader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
String str = null;
try {
//prompt the user to input data
System.out.println("Type or paste your data and hit Ctrl + z");
str = br.readLine();
//save the user input data to text file
PrintWriter writer = new PrintWriter("weather.txt", "UTF-8");
writer.print(str);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
目前我遇到了 2 个问题。
1) 上面的代码好像只是把粘贴到控制台的第一行保存到控制台中。
2) 正在保存的文本文件在全局项目文件夹中,而不是指定的数据子文件夹中。
如有任何帮助或建议,我们将不胜感激。谢谢。
你正在写str,但是str只是br中的第一行你必须循环读取所有行。
试试这个代码:
public static void writeFile()
{
//set up for the user input
Reader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
String str = null;
try {
//prompt the user to input data
System.out.println("Type or paste your data and hit Ctrl + z");
PrintWriter writer = new PrintWriter("weather.txt", "UTF-8");
while((str = br.readLine())!=null)
{
//save the line
writer.println(str);
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
关于第二个问题,文件写在你应用程序的工作目录下。
我希望用户能够将多行文本复制并粘贴到控制台,然后将其保存到特定的文本文件("weather.text" 在本例中,该文件位于同一个包)。我已经在这个简单的任务上工作了几个小时,但解决方案却让我望而却步。我是 java 的新手,所以提前致歉。
这个静态函数是从主启动器 class 调用的。
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Reader;
import java.util.Scanner;
public static void writeFile()
{
//set up for the user input
Reader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
String str = null;
try {
//prompt the user to input data
System.out.println("Type or paste your data and hit Ctrl + z");
str = br.readLine();
//save the user input data to text file
PrintWriter writer = new PrintWriter("weather.txt", "UTF-8");
writer.print(str);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
目前我遇到了 2 个问题。
1) 上面的代码好像只是把粘贴到控制台的第一行保存到控制台中。
2) 正在保存的文本文件在全局项目文件夹中,而不是指定的数据子文件夹中。
如有任何帮助或建议,我们将不胜感激。谢谢。
你正在写str,但是str只是br中的第一行你必须循环读取所有行。
试试这个代码:
public static void writeFile()
{
//set up for the user input
Reader r = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(r);
String str = null;
try {
//prompt the user to input data
System.out.println("Type or paste your data and hit Ctrl + z");
PrintWriter writer = new PrintWriter("weather.txt", "UTF-8");
while((str = br.readLine())!=null)
{
//save the line
writer.println(str);
}
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
关于第二个问题,文件写在你应用程序的工作目录下。