0

約 10 万行を含むファイル「ファイル 1」があります。

このファイルを 1 行ずつ読み取り、各行にテキストを追加して、別のファイル「ファイル 2」に書き込む必要があります。

コストがかかるため、各行の「ファイル2」で書き込み操作を実行したくありません。

「ファイル 1」の変更された各行をメモリに保存するためのより良いオプションはどれですか?

ArrayList または StringBuilder または何か他のもの?

そして最後に、メモリ内の完全なデータを「ファイル 2」に書き込みます。

4

3 に答える 3

1

適切なサイズのバッファーを使用しても、思ったほどコストがかからない場合があります。問題がストリーム処理のように見える場合、すべてのコンテンツをメモリに保持することは悪い考えのように思えます。

a から File 1 を読み取りBufferedReader、何かを変更して結果を a に渡すのBufferedWriterが最善の策かもしれません。

于 2013-02-06T11:44:52.213 に答える
0

行ごとに読むことがパフォーマンスに大きな影響を与えるとは思いません。Java 5以降を使用している場合は、Java.nioを使用してネイティブOSプロセスを使用できます。

詳細については、このリンクを確認してください

http://docs.oracle.com/javase/tutorial/essential/io/file.html

于 2013-02-06T11:53:53.360 に答える
0

BufferedOutputStream を使用して、物理的な書き込みの数を減らすだけです。

BufferedReader reader = new BufferedReader(
    new InputStreamReader (new FileInputStream ("input.txt")));
Writer writer = 
    new OutputStreamWriter(
        new BufferedOutputStream (new FileOutputStream ("output.txt")));

String line;
while ((line = reader.readLine ()) != null)
{
    writer.write (line + " foo \n");
}

reader.close ();
writer.close ();
于 2013-02-06T11:47:21.727 に答える