2017-12-09 13 views
0

大きなテキストファイルをAndroidで高速に書き込むにはどうすればよいですか?
PrintWriter、BufferedWriter、およびFileWriterを使用していくつかのテストを行いましたが、有意な時間差はなく、読み取りに約3倍の時間がかかります。大きなテキストファイルをすばやく書き込む

+0

私はこれがあなたが得ることができる速いと思います。読み取りと書き込みの速度は、使用されるハードウェア技術によっても制限されます。 – Henry

+0

'BufferedWriter'はパフォーマンスを向上させるはずです。そうでなければ' BufferedWriter(Writer out、int sz) 'コンストラクタで再生できます – pskink

答えて

1

Androidは、ストレージユニットを搭載する他のすべてのデバイスと同じように、書き込み速度が制限されています。

ファイルの書き込みと読み取りをスピードアップするためにできる唯一の方法は、より快適なストレージユニットです(これは、Androidデバイスでは簡単ではありません。

ファイルの読み書きに関しては、ハードウェアによって制限されています。

0

各メモリには、特定のブロックとページサイズがあります。フラッシュメモリでの書き込みがどのように行われるかによって、小さなチャンクで書き込むことは重要です。ここで

adb shelldd実行してベンチマークです:

sailfish:/storage/emulated/0 $ dd if=/dev/zero of=test bs=4k count=$((32*1024))                                                
32768+0 records in 
32768+0 records out 
134217728 bytes transferred in 0.521 secs (257615600 bytes/sec) 

1kのブロックのためのもう一つ:小さなチャンクで

sailfish:/storage/emulated/0 $ dd if=/dev/zero of=test bs=1k count=$((128*1024))                                               
131072+0 records in 
131072+0 records out 
134217728 bytes transferred in 1.369 secs (98040707 bytes/sec) 

書き込みデータが遅くなることはほとんど3倍になります。 メモリをベンチマークして、ハードウェアの制限があるかどうかを確認することをお勧めします。書き込みバッファーサイズを試してみてください。書き込み中にメモリが本当に遅い場合は、何もできません。

0

速い方はfile読み書きはjava.nioパッケージをご覧ください。

これは、Java NIO程度の良い articleです

、ここであなたはIOパッケージ

0

付けOkioスピンとの比較を見つけることができます。実際にはもっと速いのかどうかはわかりません。

関連する問題