private static void displaytoFile(int trial, int count) {
// TODO Auto-generated method stub
String answer;
try{
// Create file
FileWriter fstream = new FileWriter(outputfile);
BufferedWriter out = new BufferedWriter(fstream);
answer = "Case #"+trial+": "+count;
out.write(answer);
out.newLine();
//Close the output stream
out.close();
}catch (Exception e){//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
在我的项目中循环调用displaytoFile()方法,但是我无法逐行写入文件。它只写最后一行,即上一次迭代过程中传递的参数。我在控制台中测试了其他代码没问题,它显示所有,但这段代码片段似乎有一些问题,因为它似乎覆盖了以前的值。我怎么能逐行写入文件?
答案 0 :(得分:1)
使用FileWriter(String, boolean)
构造函数来附加输入而不是重写整个文件:
FileWriter fstream = new FileWriter(outputfile, true);
答案 1 :(得分:0)
FileWriter fstream = new FileWriter(outputfile);
BufferedWriter out = new BufferedWriter(fstream);
answer = "Case #"+trial+": "+count;
out.write(answer);
out.newLine();
//Close the output stream
out.close();
有问题。这是因为在循环的每次迭代中,清除文件然后将当前行写入其中。你应该在循环之前打开文件并在循环之后关闭它。或者确保你附加到文件,而不是先清楚然后写,就像你现在做的那样。
答案 2 :(得分:0)
您必须指明要附加到文件
请参阅方法文档here