EeBlog(テクニカルブログ) :Javaワンポイント

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

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

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

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

(さらに…)

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

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

前回はFileInputStreamのgetChannelメソッドによりFileChannelを取得しましたが、これは読み込み専用のFileChannelです。
書き込み専用のFileChannelはFileOutputStreamのgetChannelメソッドで取得できます。

FileChannelはバイトを書き込むためのWritableByteChannel インターフェース、GatheringByteChannelインターフェースを実装しており、これらのwriteメソッドを実行すると、現在位置(position)からバイトを書き込みます。
ただし、追加モードでは、現在位置をファイルの末尾に設定してからバイトを書き込みます。
また、現在位置は書き込まれた分だけ移動します。

(さらに…)

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

今回からは「ファイルチャンネルの入出力」について見ていきます。

FileChannelはファイル入出力用のチャンネルです。
FileChannelはFileInputStream、FileOutputStream、RandomAccessFileのgetChannelメソッドで取得できます。

FileChannelはファイルの現在位置(position)を持っています。
FileChannelはバイトを読み込むためのReadableByteChannelインターフェース、ScatteringByteChannelインターフェースを実装しており、これらのreadメソッドを実行すると、現在位置からバイトを読み込みます。
また、現在位置は読み込まれた分だけ移動します。
(さらに…)