5

私は、外部ファイルを読み込んでデータの統計を取得し、統計を含む新しいファイルを作成して書き込む必要があるラボを行っています。ファイルの書き込みを除いて、プログラムのすべてが機能しますが、メソッドが機能しない理由がわかりません。

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 );
    }
}
4

3 に答える 3

3

Java 7 の try-with-resources を使用して、opend リソースを明示的または暗黙的に常に閉じる必要があります。

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

さらに、テキストを書き込むためのより便利なクラスがあります - java.io.PrintWriter

try (PrintWriter pw = new PrintWriter(file)) {
    pw.println("Number of words: " + word);
    ...
}
于 2013-01-24T14:45:30.240 に答える
0

close()を使用してBufferedWriterを閉じる必要があります。

writer.close();
于 2013-01-24T14:25:25.123 に答える