2012-04-18 16 views
2

:今JavaのString I/O

Read String From File 
// Perform some string processing 
Write output string in file 

は、ファイルへ/から/書き込み文字列を読み取るために、私は、

BufferedReader br = new BufferedReader(new FileReader("Text.txt"), 32768); 
BufferedWriter out = new BufferedWriter(new FileWriter("AnotherText.txt"), 32768); 

    while((line = br.readLine()) != null) { 
      //perform some string processing 
      out.write(output string) ; 
      out.newLine(); 
    } 

を使用していますしかし、読み書きはかなり遅いようです。 JAVAのファイルとの間で文字列を読み書きする最も速い方法はありますか?

追加情報:

1) Read File is 144 MB. 
2) I can allocate large memory (50 MB) for reading or writing. 
3)I have to write it as a string, not as Byte. 
+0

「かなり遅い」の速度は正確ですか? –

+0

この宿題はありますか?そのようにタグ付けする必要があります。 – twain249

+1

読んだり書いていること以外に何をしていますか?いくつかの変換がありますか?その変換は高価な部分ですか?データを変換していない場合は、単にファイルをコピーしないでください。 –

答えて

1

それはそれがあるべきよりも遅いですね。

バッファサイズを増やすことができます。

FileWriterではなくFileOutputStreamを試してみることもできます。

あなたは50MBについて言及しました。 -Xスイッチを使用してプログラムを実行するときに、プログラムのメモリパラメータを変更していますか?

+0

ありがとうございます。私は32 KB、64 KBを試してみます。しかし、同じ時間。1つの議論では、それでは、32 KBは多かれ少なかれ最適なものです。しかし、NIOはより良いものになりますか? – Arpssss

0

は、あなたのパフォーマンス要件が何であるかを投稿していないという事実を無視:

は、バイトとしてファイルの書き込み/読み込み、内部文字/文字列にバイトを変換してみます。

この質問は役に立つかもしれません:Number of lines in a file in Java