如何确保在输入某个命令后将输入到控制台的数据写入文件?在我的例子中,我们在控制台中输入了一些数据,在输入“end”之后,之前输入的所有内容都应该写入一个文件。对我来说,只有命令本身会被记录下来,而我在控制台中输入的所有内容都不会被记录下来。这是我的代码:
public static void writeToFileFromConsole(String path){
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(reader);
FileWriter writer = null;
BufferedWriter bufferedWriter = null;
System.out.println("Enter file content to write in the file:");
try {
String line;
do {
line = br.readLine();
writer = new FileWriter(path, true);
bufferedWriter = new BufferedWriter(writer);
bufferedWriter.append("\n");
bufferedWriter.append(line);
}
while (!line.equals("wr"));
}catch (IOException e){
System.err.println("Can't write to file with path " + path);
}
finally {
try {
br.close();
reader.close();
if (bufferedWriter != null){
bufferedWriter.close();
}
if (writer != null){
writer.close();
}
}catch (IOException e){
System.err.println("File with path " + path + " not found" );
}
}
}
您应该
FileWriter在开始循环之前创建。这样数据就不会丢失,否则每次迭代都会创建一个新对象。例如像这样: