我需要创建一个方法,将用户从控制台输入的所有内容写入给定路径的文件,而不覆盖文件的内容。写入文件必须在单独一行输入 wr 命令后完成。我做了这个方法,但由于它的工作,第一个导管立即起作用。调试程序时显示-该进程无法访问该文件,因为该文件已被另一个进程占用。
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 command = "wr";
String line;
line = br.readLine();
if ((line = br.readLine()).equals(command)) {
writer = new FileWriter(path, true);
bufferedWriter = new BufferedWriter(writer);
bufferedWriter.append("\n");
bufferedWriter.append(line);
}
}catch (IOException e){
System.err.println("Can't write to file with path " + path);
}
finally {
try {
reader.close();
br.close();
if (writer != null){
writer.close();
}
if (bufferedWriter != null){
bufferedWriter.close();
}
}catch (IOException e){
System.err.println("File with path " + path + " not found" );
}
}
}
告诉我我的错误是什么?以及如何修复它,以便将控制台中输入的数据写入文件。
我检查了你的代码,没有错误,除了文件不存在的异常。
改变它,所以它不会发生: