【发布时间】:2017-02-10 06:51:34
【问题描述】:
我希望用户能够将多行文本复制并粘贴到控制台中,然后将其保存到特定的文本文件(本例中为“weather.text”,该文件位于同一包内的数据文件夹中)。我已经为这个简单的任务工作了几个小时,但解决方案正在逃避我。我是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 superuser.com/questions/476873/…
-
我的教授说要使用 ctr + z “让扫描仪在创建文本文件时将数据读入文件”。我更喜欢图形界面,但我们的课程还没有那么先进。现在我正在用我的头撞到命令行来锻炼。
标签: java io bufferedreader writer reader