我希望用户能够将多行文本复制并粘贴到控制台中,然后将其保存到特定的文本文件(本例中为“weather.text”)在相同包中的数据文件夹中)。我一直在做这个简单的任务几个小时,解决方案正在逃避我。我是新来的java,所以我提前道歉。将用户输入到java中的文本文件中
这个静态函数是从主启动类调用的。
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)保存的文本文件位于全局项目文件夹中,而不是指定的数据子文件夹。
任何帮助或建议表示赞赏。谢谢。
是不是Ctrl + z只是“撤消”?或者它以某种方式将所有内容放在一行上? 'br.readLine()'只读取一行。 – 4castle
@ 4castle http://superuser.com/questions/476873/what-is-effect-of-ctrl-z-on-a-unix-linux-application – Murillio4
我的教授说要用ctr + z来得到扫描仪在创建文本文件时将数据读入文件“。我更愿意使用图形界面,但我们的课程并没有那么先进。现在,我正在为了锻炼而对命令行感到头痛。 –