FileChannel クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。
[Android.Runtime.Register("java/nio/channels/FileChannel", DoNotGenerateAcw=true)]
public abstract class FileChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable, Java.Interop.IJavaPeerable, Java.Nio.Channels.IGatheringByteChannel, Java.Nio.Channels.IScatteringByteChannel, Java.Nio.Channels.ISeekableByteChannel
[<Android.Runtime.Register("java/nio/channels/FileChannel", DoNotGenerateAcw=true)>]
type FileChannel = class
inherit AbstractInterruptibleChannel
interface IByteChannel
interface IReadableByteChannel
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IWritableByteChannel
interface IGatheringByteChannel
interface IScatteringByteChannel
interface ISeekableByteChannel
- 継承
- 属性
- 実装
注釈
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。
ファイル チャネルは、 SeekableByteChannel
ファイルに接続されている です。 ファイル内には、 と #position(long) <i>modified</i>
の両方#position() <i>queried</i>
を指定できる現在の位置があります。 ファイル自体には、読み取りと書き込みが可能で、現在 #size <i>size</i>
のクエリを実行できる可変長のバイト シーケンスが含まれています。 現在のサイズを超えてバイトが書き込まれると、ファイルのサイズが大きくなります。の場合、ファイルのサイズが #truncate <i>truncated</i>
小さくなります。 ファイルには、アクセス許可、コンテンツ タイプ、最終変更時刻などの メタデータ が関連付けられている場合もあります。このクラスでは、メタデータ アクセスのメソッドは定義されません。
このクラスは、バイト チャネルの使い慣れた読み取り、書き込み、および閉じる操作に加えて、次のファイル固有の操作を定義します。
<ul>
<李>
バイトは、#read(ByteBuffer, long) read
#write(ByteBuffer, long) <i>written</i>
チャネルの現在の位置に影響を与えない方法で、ファイル内の絶対位置または絶対位置にある場合があります。
</李>
<李>
ファイルの領域はメモリに直接格納される #map <i>mapped</i>
場合があります。大きなファイルの場合、通常 read
の メソッドや write
メソッドを呼び出すよりもはるかに効率的です。
</李>
<李>
ファイルに対して行われた更新は#force <i>forced out</i>
、基になるストレージ デバイスに対して行われる可能性があり、システムがクラッシュした場合にデータが失われないようにします。
</李>
<李>
バイトは、多くのオペレーティング システムによって、ファイルシステム キャッシュとの間で直接または直接転送される非常に高速な転送に最適化できる方法で、ファイル #transferTo <i>to some other channel</i>
、 および #transferFrom <i>vice versa</i>
から転送できます。
</李>
<李>
ファイルの領域は、他のプログラムによるアクセスに対して行われる FileLock <i>locked</i>
可能性があります。
</李>
</ul>
ファイル チャネルは、複数の同時実行スレッドで安全に使用できます。 メソッドは Channel#close close
、 インターフェイスで Channel
指定されているように、いつでも呼び出すことができます。 チャネルの位置を含む操作、またはファイルのサイズを変更できる操作は、任意の時点で進行中である可能性があります。は、最初の操作がまだ進行中の間に 2 番目の操作を開始しようとすると、最初の操作が完了するまでブロックされます。 その他の操作 (特に明示的な位置を取る操作) は、同時に進行する可能性があります。実際にそうするかどうかは、基になる実装に依存するため、指定されていません。
このクラスのインスタンスによって提供されるファイルのビューは、同じプログラム内の他のインスタンスによって提供されるのと同じファイルの他のビューと一致することが保証されます。 ただし、このクラスのインスタンスによって提供されるビューは、基になるオペレーティング システムによって実行されるキャッシュと、ネットワーク ファイルシステム プロトコルによって引き起こされる遅延のために、他の同時に実行されるプログラムによって表示されるビューと一致している場合とそうでない場合があります。 これは、これらの他のプログラムが記述されている言語、およびそれらが同じコンピューター上で実行されているか、他のコンピューターで実行されているかに関係なく当てはまります。 このような不整合の正確な性質はシステムに依存するため、指定されていません。
ファイル チャネルは、このクラスで定義されているいずれかのメソッドを #open open
呼び出すことによって作成されます。 ファイル チャネルは、そのオブジェクトの メソッドを呼び出すことによって、既存java.io.FileInputStream#getChannel FileInputStream
の getChannel
、java.io.FileOutputStream#getChannel FileOutputStream
、または java.io.RandomAccessFile#getChannel RandomAccessFile
オブジェクトから取得することもできます。このメソッドは、同じ基になるファイルに接続されているファイル チャネルを返します。 ファイル チャネルが既存のストリームまたはランダム アクセス ファイルから取得された場合、ファイル チャネルの状態は、そのメソッドがチャネルを返したオブジェクト getChannel
の状態に密接に接続されます。 チャネルの位置を明示的に変更するか、バイトの読み取りまたは書き込みによって変更すると、元のオブジェクトのファイル位置が変更されます。その逆も同様です。 ファイル チャネルを介してファイルの長さを変更すると、元のオブジェクトを介して表示される長さが変更されます。その逆も同様です。 バイトを書き込んでファイルのコンテンツを変更すると、元のオブジェクトに表示されるコンテンツが変更されます。その逆も同様です。
"open-mode">
このクラスでは、さまざまな時点で、"読み取り用に開く"、"書き込み用に開く"、または "読み書き用に開く" インスタンスが必要であることを指定します。 インスタンスの メソッドを介して取得されたjava.io.FileInputStream#getChannel getChannel
java.io.FileInputStream
チャネルは、読み取り用に開かれます。 インスタンスの java.io.FileOutputStream
メソッドを介して取得されたjava.io.FileOutputStream#getChannel getChannel
チャネルは、書き込み用に開かれます。 最後に、インスタンスの メソッドをjava.io.RandomAccessFile#getChannel getChannel
使用して取得したチャネルは、インスタンスが mode で作成された場合は読み取り用に開き、インスタンスが モード "r"
で"rw"
作成された場合は読み取りと書き込みのために開java.io.RandomAccessFile
きます。
"append-mode">
書き込み用に開いているファイル チャネルは、 追加モードになることがあります。たとえば、コンストラクターを呼び出して 2 番目のパラメーターを java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean)
渡 true
すことによって作成されたファイル出力ストリームから取得された場合などです。 このモードでは、相対書き込み操作の各呼び出しは、最初にファイルの末尾に位置を進めてから、要求されたデータを書き込みます。 位置の進歩とデータの書き込みが 1 つのアトミック操作で行われるかどうかは、システムに依存するため、指定されていません。
1.4 で追加されました。
の java.nio.channels.FileChannel
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
コンストラクター
FileChannel() |
このクラスの新しいインスタンスを初期化します。 |
FileChannel(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
Class |
この |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
IsOpen |
このチャネルが開いている場合は true を返します。 (継承元 AbstractInterruptibleChannel) |
JniIdentityHashCode |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
JniPeerMembers |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
PeerReference |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
ThresholdClass |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
ThresholdType |
この API は Mono for Android インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 |
メソッド
Begin() |
無期限にブロックする可能性がある I/O 操作の開始をマークします。 (継承元 AbstractInterruptibleChannel) |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
Close() |
このチャネルを閉じます。 (継承元 AbstractInterruptibleChannel) |
Dispose() |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
Dispose(Boolean) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
End(Boolean) |
無期限にブロックする可能性がある I/O 操作の終了をマークします。 (継承元 AbstractInterruptibleChannel) |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
Force(Boolean) |
このチャネルのファイルに対する更新が、そのファイルを含むストレージ デバイスに強制的に書き込まれます。 |
ForceAsync(Boolean) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
ImplCloseChannel() |
このチャネルを閉じます。 (継承元 AbstractInterruptibleChannel) |
JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションが判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Lock() |
このチャネルのファイルに対する排他ロックを取得します。 |
Lock(Int64, Int64, Boolean) |
このチャネルのファイルの特定の領域に対するロックを取得します。 |
Map(FileChannel+MapMode, Int64, Int64) |
このチャネルのファイルの領域をメモリに直接マップします。 |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
Open(IPath, ICollection<IOpenOption>, IFileAttribute[]) |
ファイルを開くか作成し、ファイルにアクセスするためのファイル チャネルを返します。 |
Open(IPath, IOpenOption[]) |
ファイルを開くか作成し、ファイルにアクセスするためのファイル チャネルを返します。 |
Position() |
このチャネルのファイル位置を返します。 |
Position(Int64) |
このチャネルのファイル位置を設定します。 |
Read(ByteBuffer) |
このチャネルから特定のバッファーにバイトシーケンスを読み取ります。 |
Read(ByteBuffer, Int64) |
指定されたファイル位置から開始して、このチャネルから特定のバッファーにバイトシーケンスを読み取ります。 |
Read(ByteBuffer[]) |
このチャネルから特定のバッファーにバイトシーケンスを読み取ります。 |
Read(ByteBuffer[], Int32, Int32) |
このチャネルから特定のバッファーのサブシーケンスにバイトシーケンスを読み取ります。 |
ReadAsync(ByteBuffer) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
ReadAsync(ByteBuffer, Int64) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
ReadAsync(ByteBuffer[]) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
ReadAsync(ByteBuffer[], Int32, Int32) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
Size() |
このチャネルのファイルの現在のサイズを返します。 |
ToArray<T>() |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
TransferFrom(IReadableByteChannel, Int64, Int64) |
指定された読み取り可能なバイト チャネルから、このチャネルのファイルにバイトを転送します。 |
TransferFromAsync(IReadableByteChannel, Int64, Int64) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
TransferTo(Int64, Int64, IWritableByteChannel) |
このチャネルのファイルから、指定された書き込み可能なバイト チャネルにバイトを転送します。 |
TransferToAsync(Int64, Int64, IWritableByteChannel) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
Truncate(Int64) |
このチャネルのファイルを指定したサイズに切り捨てます。 |
TruncateAsync(Int64) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
TryLock() |
このチャネルのファイルに対して排他ロックの取得を試みます。 |
TryLock(Int64, Int64, Boolean) |
このチャネルのファイルの特定のリージョンに対するロックの取得を試みます。 |
UnregisterFromRuntime() |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
Wait() |
現在のスレッドが起動するまで待機します。通常<は、通知</em> または>< em 中断</em によって待機します>。> (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Write(ByteBuffer) |
指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。 |
Write(ByteBuffer, Int64) |
指定されたファイル位置から、指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。 |
Write(ByteBuffer[]) |
指定されたバッファーからこのチャネルにバイトシーケンスを書き込みます。 |
Write(ByteBuffer[], Int32, Int32) |
指定されたバッファーのサブシーケンスからこのチャネルにバイトシーケンスを書き込みます。 |
WriteAsync(ByteBuffer) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
WriteAsync(ByteBuffer, Int64) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
WriteAsync(ByteBuffer[]) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
WriteAsync(ByteBuffer[], Int32, Int32) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
IJavaPeerable.Finalized() |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
IJavaPeerable.JniManagedPeerState |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 (継承元 Object) |
ISeekableByteChannel.Position(Int64) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
ISeekableByteChannel.Truncate(Int64) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
GetJniTypeName(IJavaPeerable) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
ReadAsync(IReadableByteChannel, ByteBuffer) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |
WriteAsync(IWritableByteChannel, ByteBuffer) |
ファイルの読み取り、書き込み、マッピング、操作のためのチャネル。 |