1、特徴
このクラスは、バイトチャネルに対する一般的な操作 (読み込み、書き込み、
クローズ) のほかに、次のようなファイル固有の操作を定義します。
◆バイトの読み込みや書き込みは、チャネルの現在位置に影響を及ぼす
ことなく、ファイル内の絶対位置で行われる
◆ファイルの領域はメモリに直接マッピングされる。ファイルのサイズが
大きい場合は、通常のread メソッドやwrite メソッドを呼び出すより、この
方法のほうが効率的
◆ファイルの更新は、基準となる記憶装置に強制書き出しされる。
したがって、システムがクラッシュしてもデータの損失は回避される
◆バイトはファイルからその他のチャネルへ転送できる。反対に、
その他のチャネルから転送することもできる。多くのオペレーティング
システムをファイルシステムのキャッシュと直接接続し、データを非常
に速い速度で送受信することにより、この転送を最適化できる
◆ファイルの領域は、その他のプログラムからアクセスできないよう
にロックできる
2.メソッド:
このクラスは、既存のファイルを開くメソッドや新しいファイルを作成する
メソッドは定義しません。これらのメソッドは、将来のリリースで追加される
可能性があります。このたびのリリースでファイルチャネルを取得したい
場合は、既存の FileInputStream、FileOutputStream、RandomAccessFile の
いずれかのオブジェクトの getChannel メソッドを呼び出します。こうすること
により、基準となる同じファイルに接続されたファイルチャネルが
返されます。
3.ファイルチャネルの状態:
ファイルチャネルの状態は、チャネルを返した getChannel メソッドを持つ
オブジェクトの状態と密接な関係にあります。たとえば、チャネルの位置を
明示的に、あるいはバイトの読み込みや書き込みによって変更すると、
発生元のオブジェクトのファイル位置が変わります (逆も同様)。ファイル
チャネルからファイルの長さを変更すると、発生元オブジェクトから見た
ときの長さが変わります (逆も同様)。バイトの書き込みによってファイル
のコンテンツを変更すると、元のオブジェクトから見たときのコンテンツが
変わります (逆も同様)。
4.読み書きインスタンス:
このクラスは、さまざまな点で、「読み込み可能」、「書き込み可能」または
「読み込みと書き込みが可能」であるインスタンスが必要なことを条件
として指定します。FileInputStream インスタンスの getChannel メソッドで取得
したチャネルは読み込み可能です。FileOutputStream インスタンスの
getChannel メソッドで取得したチャネルは書き込み可能です。そして、
RandomAccessFile インスタンスの getChannel メソッドで取得した
チャネルは、インスタンスがモード "r" で作成されている場合は
読み込み可能、モード "rw"で作成されている場合は読み込みと
書き込みが可能です。
5.チャネルのオーペンとクローズ:
チャネルの状態はオープンまたはクローズです。作成時はオープンですが、
クローズするとクローズしたままになります。チャネルがクローズしている
状態で入力操作を行おうとすると、ClosedChannelException がスローされ
ます。チャネルがオープンしているかどうかは isOpen メソッドの呼び出し
によって判断できます。
===========補足===============
1.FileChannelの親インタフェース:
public interface Channel:
入出力操作に関係するチャネルです。
2.チャネルの定義:
チャネルは、ハードウェアデバイス、ファイル、ネットワークソケットのほか、
個別の入出力操作 (読み込み、書き込みなど) を実行できるプログラム
コンポーネントなどのエンティティへのオープン接続を表します。
やっと終わった^^^^^
0 件のコメント:
コメントを投稿