EeBlog(テクニカルブログ)

第108回 ファイルチャンネルの入出力

引き続き「ファイルチャンネルの入出力」について見ていきます。

今回はJavaによるファイルロックについて書きます。

Javaによるファイルロックは、FileクラスのcreateNewFileメソッドを使用し、ロック用のファイルの作成することにより実現する方法があります。
しかしJavadoc(J2SE6.0)によると、このメソッドをファイルロックのために使用しないように書かれています。
そこで今回はFileChannelのファイルロック機能を使ってみたいと思います。
このファイルロックは異なる仮想マシンで実行される場合でも有効です。

(さらに…)

第107回 ファイルチャンネルの入出力

引き続き「ファイルチャンネルの入出力」について見ていきます。

FileChannelはバイトを他のチャネルへ転送することができたり、他のチャネルから転送することができます。
transferFromメソッドは他のチャンネルからバイトを転送します。
transferToメソッドは他のチャンネルにバイトを転送します。
この転送は、チャンネルからバイトを読み込み、ターゲットのチャンネルにそのバイト書き込むよりも効率的に処理できる可能性があります。

(さらに…)

第106回 ファイルチャンネルの入出力

引き続き「ファイルチャンネルの入出力」について見ていきます。

ByteBufferにはダイレクトバッファと非ダイレクトバッファがあります。
ダイレクトバッファを使った入出力は、中間バッファを介さずに行うため、非ダイレクトバッファよりも高速です。
ただし、非ダイレクトバッファよりも割り当ておよび解放コストが高く、寿命が長く容量の大きいバッファとして扱うのに適しています。

今回は、ファイルの領域をメモリに直接マッピングするMappedByteBufferというダイレクトバッファによるファイル入出力について見ていきます。

(さらに…)