4

20 を超える 5000x30 の double 配列があり、それぞれが次を使用してテキスト ファイルに書き込まれます。

PrintWriter test = new PrintWriter(new BufferedWriter(new FileWriter("test.txt")));

処理に 10 分以上かかりました。処理を高速化する別の方法があるかどうかを確認したいと思います。

4

3 に答える 3

3

多数のバッファですべてを処理する代わりに、絶対に必要になるまでバッファをフラッシュしないでください。

println printf flush format実際には、これは、バッファをフラッシュするような方法やその他の方法を使用しないことを意味します。これを回避することで、ランタイムを浪費するコストのかかるシステムコールを遅らせて組み合わせることができます。

または、PrintWriterのコンストラクターでautoFlushをfalseに設定します。詳細については、この質問を確認してください

于 2012-09-25T05:17:31.157 に答える
0

PrintWriter の autoFlush 変数を false に設定します。

PrintWriter test = new PrintWriter(new BufferedWriter(
                                   new FileWriter("test.txt")), **false**);

書き込み全体 ( println ) が完了したら、 test.flush() を呼び出します。

これにより、中間のフラッシング時間を回避できます。

于 2012-09-25T07:35:06.733 に答える
0

これにはJava nioを使用することをお勧めします。従来の Java io よりも本質的に高速です。これらの ( 1 , 2 ) の例を参照して開始してください。

于 2012-09-25T08:08:26.960 に答える