AsynchronousFileChannel クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ファイルの読み取り、書き込み、操作のための非同期チャネル。
[Android.Runtime.Register("java/nio/channels/AsynchronousFileChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousFileChannel : Java.Lang.Object, IDisposable, Java.Nio.Channels.IAsynchronousChannel
[<Android.Runtime.Register("java/nio/channels/AsynchronousFileChannel", ApiSince=26, DoNotGenerateAcw=true)>]
type AsynchronousFileChannel = class
inherit Object
interface IAsynchronousChannel
interface IChannel
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 継承
- 属性
- 実装
注釈
ファイルの読み取り、書き込み、操作のための非同期チャネル。
非同期ファイル チャネルは、このクラスで定義されている #open open メソッドのいずれかを呼び出すことによって、ファイルを開いたときに作成されます。 このファイルには、読み取りと書き込みが可能で、現在のサイズを #size() queriedできる可変長のバイト シーケンスが含まれています。 ファイルのサイズは、バイトが現在のサイズを超えて書き込まれると大きくなります。ファイルが #truncate truncatedされると、ファイルのサイズが小さくなります。
非同期ファイル チャネルには、ファイル内の 現在位置 がありません。 代わりに、ファイルの位置は、非同期操作を開始する各読み取りおよび書き込みメソッドに指定されます。
CompletionHandlerはパラメーターとして指定され、I/O 操作の結果を使用するために呼び出されます。 このクラスでは、非同期操作を開始する読み取りおよび書き込みメソッドも定義され、操作の保留中の結果を表す Future が返されます。
Futureを使用して、操作が完了したかどうかを確認し、その完了を待機し、結果を取得できます。
このクラスは、読み取り操作と書き込み操作に加えて、次の操作を定義します。
<ul>
<li>
ファイルに対して行われた更新は、基になるストレージ デバイスに #force <i>forced out</i> され、システムがクラッシュした場合にデータが失われないようにすることができます。
</li>
<li>
ファイルの領域は、他のプログラムによるアクセスに対して #lock <i>locked</i> される場合があります。
</li>
</ul>
AsynchronousFileChannelは、I/O イベントを処理し、チャネルで I/O 操作の結果を使用する完了ハンドラーにディスパッチするためにタスクが送信されるスレッド プールに関連付けられます。 チャネルで開始された I/O 操作の完了ハンドラーは、スレッド プール内のいずれかのスレッドによって呼び出されることが保証されます (これにより、完了ハンドラーは、予期される <em>identity</em> を持つスレッドによって確実に実行されます)。 I/O 操作がすぐに完了し、開始スレッド自体がスレッド プール内のスレッドである場合、完了ハンドラーは開始スレッドによって直接呼び出される可能性があります。 スレッド プールを指定せずに AsynchronousFileChannel が作成されると、チャネルは、他のチャネルと共有できるシステム依存の既定のスレッド プールに関連付けられます。 既定のスレッド プールは、 AsynchronousChannelGroup クラスによって定義されたシステム プロパティによって構成されます。
この種類のチャネルは、複数の同時実行スレッドで安全に使用できます。
Channel#close close メソッドは、Channel インターフェイスで指定されているように、いつでも呼び出すことができます。 これにより、チャネルに対するすべての未処理の非同期操作が、例外 AsynchronousCloseExceptionで完了します。 複数の読み取り操作と書き込み操作が同時に未処理になる場合があります。 複数の読み取り操作と書き込み操作が未処理の場合、I/O 操作の順序と、完了ハンドラーが呼び出される順序は指定されません。特に、操作が開始された順序で実行される保証はありません。 読み取りまたは書き込み時に使用される java.nio.ByteBuffer ByteBuffers は、複数の同時 I/O 操作で安全に使用できません。 さらに、I/O 操作が開始された後は、操作が完了するまでバッファーにアクセスしないように注意する必要があります。
FileChannelと同様に、このクラスのインスタンスによって提供されるファイルのビューは、同じプログラム内の他のインスタンスによって提供される同じファイルの他のビューと一致することが保証されます。 ただし、このクラスのインスタンスによって提供されるビューは、基になるオペレーティング システムによって実行されるキャッシュと、ネットワーク ファイルシステム プロトコルによって引き起こされる遅延により、同時に実行される他のプログラムによって表示されるビューと一致している場合とそうでない場合があります。 これは、これらの他のプログラムが記述されている言語、同じコンピューター上で実行されているか、他のコンピューター上で実行されているかに関係なく当てはまります。 このような不整合の正確な性質はシステムに依存するため、指定されていません。
1.7 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
| 名前 | 説明 |
|---|---|
| AsynchronousFileChannel() |
このクラスの新しいインスタンスを初期化します。 |
| AsynchronousFileChannel(IntPtr, JniHandleOwnership) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Class |
この |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| IsOpen |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 |
| JniIdentityHashCode |
相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。 (継承元 Object) |
| JniManagedPeerState |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| JniPeerMembers |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 |
| PeerReference |
このJava ピアの JNI オブジェクト参照を取得します。 (継承元 Object) |
| ThresholdClass |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 |
| ThresholdType |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 |
メソッド
| 名前 | 説明 |
|---|---|
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Close() |
このチャネルを閉じます。 |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| Dispose() |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| Dispose(Boolean) |
このJava ピアによって保持されているリソースを解放します。 (継承元 Object) |
| DisposeUnlessReferenced() |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| Equals(Object) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| Force(Boolean) |
このチャネルのファイルに対する更新を、そのファイルを含むストレージ デバイスに強制的に書き込みます。 |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Lock() |
このチャネルのファイルに対する排他ロックを取得します。 |
| Lock(Int64, Int64, Boolean, Object, ICompletionHandler) |
このチャネルのファイルの特定の領域に対するロックを取得します。 |
| Lock(Int64, Int64, Boolean) |
このチャネルのファイルの特定の領域に対するロックを取得します。 |
| Lock(Object, ICompletionHandler) |
このチャネルのファイルに対する排他ロックを取得します。 |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| Open(IPath, ICollection<IOpenOption>, IExecutorService, IFileAttribute[]) |
読み取りまたは書き込み用のファイルを開くか作成し、ファイルにアクセスするための非同期ファイル チャネルを返します。 |
| Open(IPath, IOpenOption[]) |
読み取りまたは書き込み用のファイルを開くか作成し、ファイルにアクセスするための非同期ファイル チャネルを返します。 |
| Read(ByteBuffer, Int64, Object, ICompletionHandler) |
指定されたファイル位置から開始して、このチャネルから特定のバッファーにバイトシーケンスを読み取ります。 |
| Read(ByteBuffer, Int64) |
指定されたファイル位置から開始して、このチャネルから特定のバッファーにバイトシーケンスを読み取ります。 |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| Size() |
このチャネルのファイルの現在のサイズを返します。 |
| ToArray<T>() |
このJava配列ラッパーからマネージド配列を作成します。 (継承元 Object) |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| Truncate(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, Object, ICompletionHandler) |
指定されたバッファーから、指定されたファイル位置からこのチャネルにバイト シーケンスを書き込みます。 |
| Write(ByteBuffer, Int64) |
指定されたバッファーから、指定されたファイル位置からこのチャネルにバイト シーケンスを書き込みます。 |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| IJavaPeerable.Finalized() |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 (継承元 JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
ファイルの読み取り、書き込み、操作のための非同期チャネル。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|