0

公式の Java チュートリアルによると、ファイルに書き込む最良の方法は次のとおりです。 http://docs.oracle.com/javase/tutorial/essential/io/file.html#channels

NIO.2 を使用して独自の FileUtil.write(file, text) メソッドを作成する前に、そのようなメソッドがどこかに既にあるのではないかと考えています。

最新の apache commons io と guava のソースを確認しましたが、どちらも FileOutputStream を作成し、文字列をバイト配列に変換して書き込むだけです。私はびっくりしました。

だから私は2つの質問があります:

  1. NIO.2 は FileOutputStream よりも速いと思いました。しかし、commons io と guava はそれらを使用していないので、これが本当かどうか疑問に思います。問題は、NIO が FileOutputStream よりも速いかどうかです。
  2. NIO.2 の方が速い場合、それを使用するライブラリはありますか?
4

1 に答える 1

0

NIO はダイレクト バッファで動作するため、より高速であると考えられています。ByteBuffer API から:

ダイレクト バイト バッファを指定すると、Java 仮想マシンはネイティブ I/O 操作を直接実行するために最善を尽くします。つまり、基礎となるオペレーティング システムのネイティブ I/O 操作のいずれかが呼び出される前 (または後) に、バッファーの内容が中間バッファーに (または中間バッファーから) コピーされるのを回避しようとします。

于 2014-01-02T02:15:12.853 に答える