AsynchronousFileChannel Klasse

Definition

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

[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
Vererbung
AsynchronousFileChannel
Attribute
Implementiert

Hinweise

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

Ein asynchroner Dateikanal wird erstellt, wenn eine Datei geöffnet wird, indem eine der #open open von dieser Klasse definierten Methoden aufruft wird. Die Datei enthält eine Bytesequenz mit variabler Länge, die gelesen und geschrieben werden kann und deren aktuelle Größe sein #size() queriedkann. Die Größe der Datei nimmt zu, wenn Bytes über ihre aktuelle Größe hinaus geschrieben werden; die Größe der Datei verringert sich, wenn sie ist #truncate truncated.

Ein asynchroner Dateikanal hat keine aktuelle Position innerhalb der Datei. Stattdessen wird die Dateiposition für jede Lese- und Schreibmethode angegeben, die asynchrone Vorgänge initiiert. A CompletionHandler wird als Parameter angegeben und aufgerufen, um das Ergebnis des E/A-Vorgangs zu nutzen. Diese Klasse definiert auch Lese- und Schreibmethoden, die asynchrone Vorgänge initiieren, und gibt ein Future , um das ausstehende Ergebnis des Vorgangs darzustellen. Möglicherweise Future wird verwendet, um zu überprüfen, ob der Vorgang abgeschlossen ist, warten Sie auf den Abschluss, und rufen Sie das Ergebnis ab.

Zusätzlich zu Lese- und Schreibvorgängen definiert diese Klasse die folgenden Vorgänge:

<Ul>

<li>

Aktualisierungen, die an einer Datei vorgenommen werden, können #force <i>forced out</i> auf dem zugrunde liegenden Speichergerät liegen, um sicherzustellen, dass Die Daten im Falle eines Systemabsturzes nicht verloren gehen.

</li>

<li>

Eine Region einer Datei kann für den Zugriff durch andere Programme gelten #lock <i>locked</i> .

</li>

</ul>

Ein AsynchronousFileChannel Threadpool ist einem Threadpool zugeordnet, an den Aufgaben übermittelt werden, um E/A-Ereignisse zu verarbeiten und an Abschlusshandler zu verteilen, die die Ergebnisse von E/A-Vorgängen im Kanal nutzen. Der Abschlusshandler für einen in einem Kanal initiierten E/A-Vorgang wird garantiert von einem der Threads im Threadpool aufgerufen (Dadurch wird sichergestellt, dass der Abschlusshandler von einem Thread mit der erwarteten <Em-Identität></em> ausgeführt wird). Wenn ein E/A-Vorgang sofort abgeschlossen wird und der initiierende Thread selbst ein Thread im Threadpool ist, kann der Abschlusshandler direkt vom initiierenden Thread aufgerufen werden. Wenn ein AsynchronousFileChannel Threadpool ohne Angabe eines Threadpools erstellt wird, wird der Kanal einem systemabhängigen Standardthreadpool zugeordnet, der für andere Kanäle freigegeben werden kann. Der Standardthreadpool wird durch die von der AsynchronousChannelGroup Klasse definierten Systemeigenschaften konfiguriert.

Kanäle dieses Typs sind sicher für die Verwendung durch mehrere gleichzeitige Threads. Die Channel#close close Methode kann jederzeit aufgerufen werden, wie von der Channel Schnittstelle angegeben. Dies bewirkt, dass alle ausstehenden asynchronen Vorgänge im Kanal mit der Ausnahme AsynchronousCloseExceptionabgeschlossen werden. Mehrere Lese- und Schreibvorgänge können gleichzeitig ausstehen. Wenn mehrere Lese- und Schreibvorgänge ausstehen, wird die Reihenfolge der E/A-Vorgänge und die Reihenfolge, in der die Abschlusshandler aufgerufen werden, nicht angegeben. sie sind insbesondere nicht gewährleistet, dass sie in der Reihenfolge ausgeführt werden, in der die Vorgänge initiiert wurden. Die java.nio.ByteBuffer ByteBuffers Verwendung beim Lesen oder Schreiben ist für die Verwendung durch mehrere gleichzeitige E/A-Vorgänge nicht sicher. Darüber hinaus sollte nach dem Initiieren eines E/A-Vorgangs darauf geachtet werden, dass der Puffer erst nach Abschluss des Vorgangs aufgerufen wird.

Wie bei FileChannelder Ansicht einer Datei, die von einer Instanz dieser Klasse bereitgestellt wird, ist sichergestellt, dass sie mit anderen Ansichten derselben Datei konsistent ist, die von anderen Instanzen im selben Programm bereitgestellt wird. Die ansicht, die von einer Instanz dieser Klasse bereitgestellt wird, kann jedoch nicht mit den Ansichten übereinstimmen, die von anderen gleichzeitig ausgeführten Programmen aufgrund der Zwischenspeicherung durch das zugrunde liegende Betriebssystem und durch Netzwerkdateiprotokolle verursachte Verzögerungen auftreten. Dies gilt unabhängig von der Sprache, in der diese anderen Programme geschrieben werden, und unabhängig davon, ob sie auf demselben Computer oder auf einem anderen Computer ausgeführt werden. Die genaue Art solcher Inkonsistenzen ist systemabhängig und daher nicht angegeben.

In 1.7 hinzugefügt.

Java Dokumentation für java.nio.channels.AsynchronousFileChannel.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Konstruktoren

Name Beschreibung
AsynchronousFileChannel()

Initialisiert eine neue Instanz dieser Klasse.

AsynchronousFileChannel(IntPtr, JniHandleOwnership)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

Eigenschaften

Name Beschreibung
Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
IsOpen

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniManagedPeerState

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
JniPeerMembers

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(Geerbt von Object)
ThresholdClass

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

ThresholdType

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

Methoden

Name Beschreibung
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Close()

Schließt diesen Kanal.

Construct(JniObjectReference, JniObjectReferenceOptions)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
Dispose()

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Dispose(Boolean)

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
DisposeUnlessReferenced()

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
Equals(Object)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
Force(Boolean)

Erzwingt, dass alle Aktualisierungen der Datei dieses Kanals auf das Speichergerät geschrieben werden, das sie enthält.

GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
Lock()

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

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

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

Lock(Int64, Int64, Boolean)

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

Lock(Object, ICompletionHandler)

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
Open(IPath, ICollection<IOpenOption>, IExecutorService, IFileAttribute[])

Öffnet oder erstellt eine Datei zum Lesen und/oder Schreiben, und gibt einen asynchronen Dateikanal zurück, um auf die Datei zuzugreifen.

Open(IPath, IOpenOption[])

Öffnet oder erstellt eine Datei zum Lesen und/oder Schreiben, und gibt einen asynchronen Dateikanal zurück, um auf die Datei zuzugreifen.

Read(ByteBuffer, Int64, Object, ICompletionHandler)

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer ab, beginnend mit der angegebenen Dateiposition.

Read(ByteBuffer, Int64)

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer ab, beginnend mit der angegebenen Dateiposition.

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
Size()

Gibt die aktuelle Größe der Datei dieses Kanals zurück.

ToArray<T>()

Erstellt ein verwaltetes Array aus diesem Java Arraywrapper.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
Truncate(Int64)

Schneidet die Datei dieses Kanals auf die angegebene Größe ab.

TryLock()

Versucht, eine exklusive Sperre für die Datei dieses Kanals zu erwerben.

TryLock(Int64, Int64, Boolean)

Versucht, eine Sperre für die angegebene Region der Datei dieses Kanals abzurufen.

UnregisterFromRuntime()

Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Write(ByteBuffer, Int64, Object, ICompletionHandler)

Schreibt eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal, beginnend mit der angegebenen Dateiposition.

Write(ByteBuffer, Int64)

Schreibt eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal, beginnend mit der angegebenen Dateiposition.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
IJavaPeerable.Finalized()

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

(Geerbt von JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Ein asynchroner Kanal zum Lesen, Schreiben und Bearbeiten einer Datei.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: