打开和写入文件Java

时间:2012-10-20 02:41:09

标签: java file printing text-files

我目前在我的代码中遇到了一个问题。我需要将数据写入文本文件,我要进行排序,他们花费时间来完成每个排序,然后将它们放入txt文件,然后我可以使用它来创建图形。问题是我在运行程序后得到一行。我无法保证每个结果。

public static void resultsToFile(String sort, double seconds, File file)
{
    try (PrintWriter out = new PrintWriter(new FileWriter(file)))
    {
        out.write(sort + "\t"); 
        out.write(seconds + " seconds\n");
        out.flush();
        out.close();

    }catch (IOException e)
    {
        e.printStackTrace();
    }   
}

这是我到目前为止写的文件方法。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

每次向文件写入一行结果时,您都会创建一个新的PrintWriter对象,从而覆盖任何以前存在的包含前一行数据的文件。为什么不在课堂上创建一次PrintWriter,然后在将所有数据写入文件后关闭它?

答案 1 :(得分:3)

如上所述 HovercraftFullOfEals ,您打开每行的文件,这是一个很大的性能开销。

然而,您看到的问题是因为您没有打开文件以附加到它,而是从头开始写入它。要附加到文件,请使用构造函数FileWriter(File,boolean)打开它:

try (PrintWriter out = new PrintWriter(new FileWriter(file, true)))