繁体   English   中英

不逐行书写

[英]not writing line by line

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()方法在我的项目中被循环调用,但是我无法一行一行地写入文件。它仅写入最后一行,即在上一次迭代过程中传递的参数。我在控制台和其他代码中进行了测试可以,它显示所有内容,但此代码段似乎有问题,因为它似乎覆盖了以前的值。如何才能逐行写入文件?

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

FileWriter fstream = new FileWriter(outputfile, true);
 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();

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

您必须指出要附加到文件中

在此处查看方法文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM