编写使用BufferedWriter将文件中的Java [复制](Write file using

2019-07-18 15:33发布

这个问题已经在这里有一个答案:

  • BufferedWriter将不写的一切其输出文件 8个回答

我做的一个实验,我们必须读取外部文件,采取对数据的一些统计数据,然后创建并写入与统计数据的新文件。 在我的程序一切正常,除了写文件,我不明白为什么我的方法是行不通的。

BufferedWriter writer;

public void writeStats(int word, int numSent, int shortest, int longest, int average)
{
    try
    {
        File file = new File("jefferson_stats.txt");
        file.createNewFile();

        writer = new BufferedWriter(new FileWriter(file));

        writer.write("Number of words: " + word );
        writer.newLine();
        writer.write("Number of sentences: " + numSent );
        writer.newLine();
        writer.write("Shortest sentence: " + shortest + " words");
        writer.newLine();
        writer.write("Longest sentence: " + longest + " words");
        writer.newLine();
        writer.write("Average sentence: " + average + " words");    
    }
    catch(FileNotFoundException e)
    {
        System.out.println("File Not Found");
        System.exit( 1 );
    }
    catch(IOException e)
    {
        System.out.println("something messed up");
        System.exit( 1 );
    }
}

Answer 1:

你必须清空并关闭您的作家:

writer.flush();
writer.close();


Answer 2:

你应该总是密切与Java 7的try-与资源运行结束资源或明或暗地

    try (BufferedWriter bw = new BufferedWriter(new FileWriter(file))) {
         ...            
    }

除此之外,还有一个更方便的类来编写文本 - 的java.io.PrintWriter

try (PrintWriter pw = new PrintWriter(file)) {
    pw.println("Number of words: " + word);
    ...
}


Answer 3:

您可以使用关闭您的BufferedWriter close()方法

writer.close();


文章来源: Write file using BufferedWriter in Java [duplicate]