【发布时间】:2017-08-03 08:40:51
【问题描述】:
我正在尝试使用缓冲写入器将文本输入记事本,这就是我想出的代码,
import java.util.Scanner;
import java.io.*;
public class FileSample {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
String yourtext = " ";
String fn = "file.txt";
String choice = " ";
do{
try{
FileWriter fw = new FileWriter(fn);
BufferedWriter bw = new BufferedWriter(fw);
System.out.print("Enter text: ");
yourtext = sc.nextLine();
bw.write(yourtext);
bw.newLine();
bw.close();
System.out.println("===================================");
System.out.print("Do you still want to continue?:\n [Y]Yes \n [N]No
\n::");
choice = sc.nextLine();
}catch(IOException ex){
System.out.println("Error writing to file '" + fn + "'");
}
}while(choice.equalsIgnoreCase("Y"));
}
}
所以问题是当用户想要继续并再次输入文本并完成该过程时,应该在 file.txt 中的文本被新输入的文本替换。
【问题讨论】:
-
因为您不应该为用户输入的每一行创建一个覆盖文件的新 Writer。您可以配置编写器以附加文件。但即便如此,您也应该让编写器和流保持打开状态,直到用户选择不继续。
标签: java do-while bufferedwriter