AsynchronousFileChannel Classe

Definizione

Canale asincrono per la lettura, la scrittura e la modifica di un file.

[Android.Runtime.Register("java/nio/channels/AsynchronousFileChannel", ApiSince=26, DoNotGenerateAcw=true)]
public abstract class AsynchronousFileChannel : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, 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
Ereditarietà
AsynchronousFileChannel
Attributi
Implementazioni

Commenti

Canale asincrono per la lettura, la scrittura e la modifica di un file.

Un canale di file asincrono viene creato quando un file viene aperto richiamando uno dei #open open metodi definiti da questa classe. Il file contiene una sequenza di byte a lunghezza variabile che può essere letta e scritta e la cui dimensione corrente può essere #size() queried. Le dimensioni del file aumentano quando i byte vengono scritti oltre le dimensioni correnti; le dimensioni del file diminuiscono quando è #truncate truncated.

Un canale di file asincrono non ha una posizione corrente all'interno del file. Al contrario, la posizione del file viene specificata per ogni metodo di lettura e scrittura che avvia operazioni asincrone. Un CompletionHandler oggetto viene specificato come parametro e viene richiamato per utilizzare il risultato dell'operazione di I/O. Questa classe definisce anche metodi di lettura e scrittura che avviano operazioni asincrone, restituendo un oggetto Future per rappresentare il risultato in sospeso dell'operazione. Può Future essere utilizzato per verificare se l'operazione è stata completata, attendere il completamento e recuperare il risultato.

Oltre alle operazioni di lettura e scrittura, questa classe definisce le operazioni seguenti:

<ul>

<li>

Gli aggiornamenti apportati a un file potrebbero essere #force <i>forced out</i> relativi al dispositivo di archiviazione sottostante, assicurandosi che i dati non vadano persi in caso di arresto anomalo del sistema.

</li>

<li>

Un'area di un file può essere #lock <i>locked</i> contro l'accesso da parte di altri programmi.

</li>

</ul>

Un AsynchronousFileChannel oggetto è associato a un pool di thread a cui vengono inviate le attività per gestire gli eventi di I/O e l'invio ai gestori di completamento che utilizzano i risultati delle operazioni di I/O nel canale. Il gestore di completamento per un'operazione di I/O avviata su un canale è garantito che venga richiamato da uno dei thread nel pool di thread .Ciò garantisce che il gestore di completamento venga eseguito da un thread con l'identità< em>/em> prevista<. Quando un'operazione di I/O viene completata immediatamente e il thread di avvio è un thread nel pool di thread, il gestore di completamento può essere richiamato direttamente dal thread di avvio. Quando viene creato un oggetto AsynchronousFileChannel senza specificare un pool di thread, il canale viene associato a un pool di thread predefinito dipendente dal sistema che può essere condiviso con altri canali. Il pool di thread predefinito è configurato dalle proprietà di sistema definite dalla AsynchronousChannelGroup classe .

I canali di questo tipo sono sicuri per l'uso da parte di più thread simultanei. Il Channel#close close metodo può essere richiamato in qualsiasi momento, come specificato dall'interfaccia Channel . In questo modo tutte le operazioni asincrone in sospeso sul canale vengono completate con l'eccezione AsynchronousCloseException. Più operazioni di lettura e scrittura possono essere in sospeso contemporaneamente. Quando più operazioni di lettura e scrittura sono in sospeso, l'ordinamento delle operazioni di I/O e l'ordine in cui vengono richiamati i gestori di completamento, non viene specificato; non sono, in particolare, garantito l'esecuzione nell'ordine in cui le operazioni sono state avviate. L'oggetto java.nio.ByteBuffer ByteBuffers utilizzato durante la lettura o la scrittura non è sicuro per l'uso da parte di più operazioni di I/O simultanee. Inoltre, dopo l'avvio di un'operazione di I/O, è necessario prestare attenzione a assicurarsi che il buffer non sia accessibile fino al completamento dell'operazione.

Come con FileChannel, la visualizzazione di un file fornito da un'istanza di questa classe è garantita coerenza con altre visualizzazioni dello stesso file fornito da altre istanze nello stesso programma. La vista fornita da un'istanza di questa classe può tuttavia essere coerente con le visualizzazioni visualizzate da altri programmi in esecuzione simultanea a causa della memorizzazione nella cache eseguita dal sistema operativo sottostante e ritardi causati dai protocolli network-file system. Questo vale indipendentemente dalla lingua in cui vengono scritti questi altri programmi e se sono in esecuzione nello stesso computer o in un altro computer. La natura esatta di tali incoerenze è dipendente dal sistema e pertanto non è specificata.

Aggiunta nella versione 1.7.

per java.nio.channels.AsynchronousFileChannel.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Costruttori

Nome Descrizione
AsynchronousFileChannel()

Inizializza una nuova istanza di questa classe.

AsynchronousFileChannel(IntPtr, JniHandleOwnership)

Canale asincrono per la lettura, la scrittura e la modifica di un file.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
IsOpen

Canale asincrono per la lettura, la scrittura e la modifica di un file.

JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniPeerMembers

Canale asincrono per la lettura, la scrittura e la modifica di un file.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

Canale asincrono per la lettura, la scrittura e la modifica di un file.

ThresholdType

Canale asincrono per la lettura, la scrittura e la modifica di un file.

Metodi

Nome Descrizione
Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da Object)
Close()

Chiude questo canale.

Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
Force(Boolean)

Forza la scrittura degli aggiornamenti al file del canale nel dispositivo di archiviazione che lo contiene.

GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Lock()

Acquisisce un blocco esclusivo sul file del canale.

Lock(Int64, Int64, Boolean, Object, ICompletionHandler)

Acquisisce un blocco sull'area specificata del file del canale.

Lock(Int64, Int64, Boolean)

Acquisisce un blocco sull'area specificata del file del canale.

Lock(Object, ICompletionHandler)

Acquisisce un blocco esclusivo sul file del canale.

Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
Open(IPath, ICollection<IOpenOption>, IExecutorService, IFileAttribute[])

Apre o crea un file per la lettura e/o la scrittura, restituendo un canale di file asincrono per accedere al file.

Open(IPath, IOpenOption[])

Apre o crea un file per la lettura e/o la scrittura, restituendo un canale di file asincrono per accedere al file.

Read(ByteBuffer, Int64, Object, ICompletionHandler)

Legge una sequenza di byte da questo canale nel buffer specificato, a partire dalla posizione del file specificata.

Read(ByteBuffer, Int64)

Legge una sequenza di byte da questo canale nel buffer specificato, a partire dalla posizione del file specificata.

SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
Size()

Restituisce le dimensioni correnti del file del canale.

ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
Truncate(Int64)

Tronca il file del canale alle dimensioni specificate.

TryLock()

Tenta di acquisire un blocco esclusivo sul file del canale.

TryLock(Int64, Int64, Boolean)

Tenta di acquisire un blocco nell'area specificata del file del canale.

UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Write(ByteBuffer, Int64, Object, ICompletionHandler)

Scrive una sequenza di byte in questo canale dal buffer specificato, a partire dalla posizione del file specificata.

Write(ByteBuffer, Int64)

Scrive una sequenza di byte in questo canale dal buffer specificato, a partire dalla posizione del file specificata.

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

Notifica al runtime di interoperabilità che il peer gestito è stato eliminato.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito.

(Ereditato da Object)
IJavaPeerable.Finalized()

Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Imposta il codice hash dell'identità di interoperabilità per questo Java peer.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Imposta lo stato peer gestito e JNI per questo peer Java.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Imposta il riferimento all'oggetto JNI usato da questo peer gestito.

(Ereditato da Object)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

Canale asincrono per la lettura, la scrittura e la modifica di un file.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a