言語

FileChannel クラス

定義

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

[Android.Runtime.Register("java/nio/channels/FileChannel", DoNotGenerateAcw=true)]
public abstract class FileChannel : Java.Nio.Channels.Spi.AbstractInterruptibleChannel, IDisposable, 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() <i>queried</i>#position(long) <i>modified</i>の両方を指定できます。 ファイル自体には、読み取りと書き込みが可能で、現在の #size <i>size</i> を照会できる可変長のバイト シーケンスが含まれています。 ファイルのサイズは、バイトが現在のサイズを超えて書き込まれると大きくなります。ファイルが #truncate <i>truncated</i>されると、ファイルのサイズが小さくなります。 ファイルには、アクセス許可、コンテンツ タイプ、最終変更時刻などの メタデータ が関連付けられている場合もあります。このクラスでは、メタデータ アクセスのメソッドは定義されません。

このクラスは、バイト チャネルの使い慣れた読み取り、書き込み、閉じる操作に加えて、次のファイル固有の操作を定義します。

<ul>

<li>

バイトは、チャネルの現在位置に影響を与えない方法で、ファイル内の絶対位置で #read(ByteBuffer, long) read または #write(ByteBuffer, long) <i>written</i> できます。

</li>

<li>

ファイルの領域は、メモリに直接 #map <i>mapped</i> 可能性があります。大きなファイルの場合、通常の read または write メソッドを呼び出すよりもはるかに効率的です。

</li>

<li>

ファイルに対して行われた更新は、基になるストレージ デバイスに #force <i>forced out</i> され、システムがクラッシュした場合にデータが失われないようにすることができます。

</li>

<li>

バイトは、ファイル #transferTo <i>to some other channel</i>#transferFrom <i>vice versa</i>から、ファイルシステム キャッシュとの間で直接または直接の非常に高速な転送に、多くのオペレーティング システムによって最適化できる方法で転送できます。

</li>

<li>

ファイルの領域は、他のプログラムによるアクセスに対して FileLock <i>locked</i> される場合があります。

</li>

</ul>

ファイル チャネルは、複数の同時実行スレッドで安全に使用できます。 Channel#close close メソッドは、Channel インターフェイスで指定されているように、いつでも呼び出すことができます。 チャネルの位置を含む操作、またはファイルのサイズを変更できる操作は 1 つだけで、任意の時点で進行中である可能性があります。最初の操作がまだ進行中の間に 2 番目の操作を開始しようとすると、最初の操作が完了するまでブロックされます。 その他の操作(特に明示的な立場を取る操作)は同時に進行する可能性があります。実際にそうするかどうかは、基になる実装に依存するため、指定されていません。

このクラスのインスタンスによって提供されるファイルのビューは、同じプログラム内の他のインスタンスによって提供される同じファイルの他のビューと一致することが保証されます。 ただし、このクラスのインスタンスによって提供されるビューは、基になるオペレーティング システムによって実行されるキャッシュと、ネットワーク ファイルシステム プロトコルによって引き起こされる遅延により、同時に実行される他のプログラムによって表示されるビューと一致している場合とそうでない場合があります。 これは、これらの他のプログラムが記述されている言語、同じコンピューター上で実行されているか、他のコンピューター上で実行されているかに関係なく当てはまります。 このような不整合の正確な性質はシステムに依存するため、指定されていません。

ファイル チャネルは、このクラスで定義されている #open open メソッドのいずれかを呼び出すことによって作成されます。 既存の java.io.FileInputStream#getChannel FileInputStreamjava.io.FileOutputStream#getChannel FileOutputStream、または java.io.RandomAccessFile#getChannel RandomAccessFile オブジェクトからファイル チャネルを取得することもできます。そのオブジェクトの getChannel メソッドを呼び出すと、同じ基になるファイルに接続されているファイル チャネルが返されます。 ファイル チャネルが既存のストリームまたはランダム アクセス ファイルから取得された場合、ファイル チャネルの状態は、 getChannel メソッドがチャネルを返したオブジェクトの状態に密接に接続されます。 チャネルの位置を明示的に変更するか、バイトの読み取りまたは書き込みによって変更すると、元のオブジェクトのファイル位置が変更されます。その逆も同様です。 ファイル チャネルを介してファイルの長さを変更すると、元のオブジェクトを介して表示される長さが変更されます。その逆も同様です。 バイトを書き込んでファイルの内容を変更すると、元のオブジェクトに表示されるコンテンツが変更されます。その逆も同様です。

"open-mode">

このクラスは、さまざまな時点で、"読み取り用に開く"、"書き込み用に開く"、または "読み取りと書き込み用に開く" インスタンスが必要であることを指定します。 java.io.FileInputStream#getChannel getChannel インスタンスの java.io.FileInputStream メソッドを使用して取得したチャネルが、読み取り用に開かれます。 java.io.FileOutputStream#getChannel getChannel インスタンスの java.io.FileOutputStream メソッドを使用して取得したチャネルは、書き込み用に開かれます。 最後に、java.io.RandomAccessFile#getChannel getChannel インスタンスのjava.io.RandomAccessFile メソッドを使用して取得されたチャネルは、インスタンスがモード "r"で作成された場合は読み取り用に開き、インスタンスがモード "rw"で作成された場合は読み取りと書き込みのために開かれます。

"append-mode">

書き込み用に開いているファイル チャネルは、 追加モードである場合があります。たとえば、 java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean) コンストラクターを呼び出し、2 番目のパラメーターに true を渡すことによって作成されたファイル出力ストリームから取得された場合などです。 このモードでは、相対書き込み操作の各呼び出しによって、最初に位置がファイルの末尾に進み、要求されたデータが書き込まれます。 位置の進歩とデータの書き込みが 1 つのアトミック操作で行われるかどうかはシステムに依存するため、指定されていません。

1.4 で追加されました。

java.nio.channels.FileChannelの Java ドキュメント。

このページの一部は、Androidオープンソースプロジェクトによって作成および共有された作業に基づく変更でありCreative Commons 2.5属性ライセンスに記載されている条件に従って使用されます。

コンストラクター

名前 説明
FileChannel()

このクラスの新しいインスタンスを初期化します。

FileChannel(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsOpen

このチャネルが開いている場合は true を返します。

(継承元 AbstractInterruptibleChannel)
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
JniPeerMembers

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
Begin()

無期限にブロックする可能性がある I/O 操作の開始をマークします。

(継承元 AbstractInterruptibleChannel)
Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Close()

このチャネルを閉じます。

(継承元 AbstractInterruptibleChannel)
Construct(JniObjectReference, JniObjectReferenceOptions)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
End(Boolean)

無期限にブロックする可能性がある I/O 操作の終了をマークします。

(継承元 AbstractInterruptibleChannel)
Equals(Object)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
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, Int64)

指定されたファイル位置から開始して、このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

Read(ByteBuffer)

このチャネルから特定のバッファーにバイト シーケンスを読み取ります。

Read(ByteBuffer[], Int32, Int32)

このチャネルから特定のバッファーのサブシーケンスにバイトシーケンスを読み取ります。

Read(ByteBuffer[])

このチャネルから特定のバッファーにバイトシーケンスを読み取ります。

ReadAsync(ByteBuffer, Int64)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ReadAsync(ByteBuffer)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ReadAsync(ByteBuffer[], Int32, Int32)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ReadAsync(ByteBuffer[])

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
Size()

このチャネルのファイルの現在のサイズを返します。

ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 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()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Write(ByteBuffer, Int64)

指定されたバッファーから、指定されたファイル位置からこのチャネルにバイト シーケンスを書き込みます。

Write(ByteBuffer)

指定されたバッファーからこのチャネルにバイト シーケンスを書き込みます。

Write(ByteBuffer[], Int32, Int32)

指定されたバッファーのサブシーケンスからこのチャネルにバイト シーケンスを書き込みます。

Write(ByteBuffer[])

指定されたバッファーからこのチャネルにバイト シーケンスを書き込みます。

WriteAsync(ByteBuffer, Int64)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

WriteAsync(ByteBuffer)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

WriteAsync(ByteBuffer[], Int32, Int32)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

WriteAsync(ByteBuffer[])

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
IJavaPeerable.Finalized()

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

(継承元 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ISeekableByteChannel.Position(Int64)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ISeekableByteChannel.Truncate(Int64)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ReadAsync(IReadableByteChannel, ByteBuffer)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

ReadAsync(IScatteringByteChannel, ByteBuffer[])

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

WriteAsync(IGatheringByteChannel, ByteBuffer[])

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

WriteAsync(IWritableByteChannel, ByteBuffer)

ファイルの読み取り、書き込み、マッピング、および操作のためのチャネル。

適用対象