0
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() 方法在我的项目中循环调用,但我无法逐行写入文件。它只写入最后一行,即上次迭代期间传递的参数。我在控制台和其他代码中测试没关系,它显示了所有内容,但此代码片段似乎有一些问题,因为它似乎覆盖了以前的值。我怎样才能逐行写入文件?

4

3 回答 3

1

使用FileWriter(String, boolean)构造函数来追加输入而不是重写整个文件:

FileWriter fstream = new FileWriter(outputfile, true);
于 2013-04-13T19:09:10.440 回答
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();

有问题。这是因为在循环的每次迭代中,您清除文件然后将当前行写入其中。您应该在循环之前打开文件并在循环之后关闭它。或者确保您附加到文件中,而不是先清除然后写入,就像您现在所做的那样。

于 2013-04-13T19:09:31.367 回答
0

您必须表明要附加到文件

在此处查看方法文档

于 2013-04-13T19:09:37.050 回答