2017-07-21 9 views
0

私は、Javaに関するいくつかの質問をバッファに入れています。
1. Streamsでは、Files.copyが通常のサイズのバッファより速いのはなぜですか?
2. Files.copyのように高速にバッファを取得する方法はありますか、それとも別の方法がありますか?
3.あなたは高速の代替を持っている場合はどのように私は(バッファと同じように)バッファをFiles.copyと同じくらい速く作る

+0

ここでは99.9%の人がヘルプが必要なので、特別なことはありません。あなたはこのサービスのためにお金を払っていないことを忘れないでください。何にも保証はありません。これがあなたにとって欲求不満だと思うなら、質問に答えた人たちを想像してください。人々は何の調査もせずにここに来て、彼らが助けを得る*権利*ある場合には完全なプログラムを持っていると想像します。私が知る限り、 – Kayaman

答えて

0

Files.copyをバイトを変更することができ、それはそのプラットフォームのための最速の方法が使用されていることを確認して、コピーを実行するためにネイティブコードを使用しているため、高速です。通常のストリームを使用する場合、ほとんどのコードは非ネイティブ(FileStreamを除く)であるため、プラットフォームのパフォーマンス上の利点を利用することはできません。

転送中にバイトを変更したい場合は、FileChannelを使用し、ByteBuffersを使用することをお勧めします。

+0

jdk-9 'Files.lines'はメモリマップされたファイルを操作しているため、ファイルが本当に速くなります。 – Eugene

+0

私はあなたの言葉を取り上げますが、それはテキストファイルの処理にのみ影響します。 – Kayaman

関連する問題