1

ArrayList からテキスト ドキュメントに要素を書き込もうとしています。私の bufferedwriter コードは次のとおりです (実際のファイルパスを含む):

Path file = Paths.get("(filepath)");
    BufferedWriter writer = Files.newBufferedWriter(file, Charset.forName("US-ASCII"));
    for (int j = 0; j < 100000; j++) {
        writer.write(Integer.toString(radicalsAndPositions.get(j).get(0)) + "," + Integer.toString(radicalsAndPositions.get(j).get(1)) + " , " + "\n");
    }

arraylist が 100,000 番目の要素までいっぱいになり、ファイルを生成しますが、最後から値が欠落しています。「j」を 10,000 に制限すると、最初の 9170 行しか生成されません。完全な 100,000 では、最初の 99250 行しか取得できません。

「j」を 1000 に制限すると、空のファイルが作成されます。

ドキュメントは正しい要素で正しく生成されていますが、途中で終了しています。これはなぜですか、どうすれば修正できますか?

4

3 に答える 3

3

完了したら、バッファ ライターを閉じて、バッファがフラッシュされたことを確認します。

于 2013-10-17T13:05:08.070 に答える
3

BufferedWriter オブジェクトを閉じます。

writer.close();

のオブジェクトを閉じない限り、ファイルは書き込まれませんBufferedWriter

于 2013-10-17T13:07:39.273 に答える
2

またwriter.flush()、ファイルに書き込んだ後に書き込む

writer.close() is also a good choice
于 2013-10-17T13:06:06.267 に答える