Sprache

FileChannel Klasse

Definition

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

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

Hinweise

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

Ein Dateikanal ist ein SeekableByteChannel Dateikanal, der mit einer Datei verbunden ist. Sie hat eine aktuelle Position innerhalb der Datei, die sowohl als auch #position() <i>queried</i>#position(long) <i>modified</i>. Die Datei selbst enthält eine Bytesequenz mit variabler Länge, die gelesen und geschrieben werden kann und deren Aktuelles #size <i>size</i> abgefragt werden kann. 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 <i>truncated</i>. Die Datei verfügt möglicherweise auch über einige zugeordnete Metadaten , z. B. Zugriffsberechtigungen, Inhaltstyp und Zeitpunkt der letzten Änderung. Diese Klasse definiert keine Methoden für den Metadatenzugriff.

Zusätzlich zu den vertrauten Lese-, Schreib- und Schließvorgängen von Bytekanälen definiert diese Klasse die folgenden dateispezifischen Vorgänge:

<Ul>

<li>

Bytes können #read(ByteBuffer, long) read sich in einer Datei auf eine Weise befinden oder #write(ByteBuffer, long) <i>written</i> eine absolute Position haben, die sich nicht auf die aktuelle Position des Kanals auswirkt.

</li>

<li>

Eine Region einer Datei kann direkt in den Speicher aufgenommen werden #map <i>mapped</i> . Bei großen Dateien ist dies oft viel effizienter als das Aufrufen der üblichen read oder write Methoden.

</li>

<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>

Byte können aus einer Datei #transferTo <i>to some other channel</i>übertragen werden und #transferFrom <i>vice versa</i>in einer Weise, die von vielen Betriebssystemen optimiert werden kann, in eine sehr schnelle Übertragung direkt in den Dateisystemcache oder aus dem Dateisystemcache.

</li>

<li>

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

</li>

</ul>

Dateikanäle 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. Nur ein Vorgang, der die Position des Kanals umfasst oder die Größe der Datei ändern kann, kann jederzeit ausgeführt werden; versucht, einen zweiten solchen Vorgang zu initiieren, während der erste vorgang noch ausgeführt wird, wird blockiert, bis der erste Vorgang abgeschlossen ist. Andere Vorgänge, insbesondere diejenigen, die eine explizite Position einnehmen, können gleichzeitig fortgesetzt werden; ob dies tatsächlich von der zugrunde liegenden Umsetzung abhängt und daher nicht angegeben ist.

Die Ansicht einer datei, die von einer Instanz dieser Klasse bereitgestellt wird, ist garantiert mit anderen Ansichten derselben Datei konsistent, 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.

Ein Dateikanal wird durch Aufrufen einer der #open open von dieser Klasse definierten Methoden erstellt. Ein Dateikanal kann auch aus einem vorhandenen java.io.FileInputStream#getChannel FileInputStream, java.io.FileOutputStream#getChannel FileOutputStreamoder java.io.RandomAccessFile#getChannel RandomAccessFile Objekt abgerufen werden, indem er die Methode des getChannel Objekts aufruft, die einen Dateikanal zurückgibt, der mit derselben zugrunde liegenden Datei verbunden ist. Wenn der Dateikanal aus einem vorhandenen Datenstrom oder einer Datei mit wahllosem Zugriff abgerufen wird, wird der Status des Dateikanals intimer Weise mit dem des Objekts verbunden, dessen getChannel Methode den Kanal zurückgegeben hat. Wenn Sie die Position des Kanals ändern, sei es explizit oder durch Lesen oder Schreiben von Bytes, ändert sich die Dateiposition des ursprünglichen Objekts und umgekehrt. Wenn Sie die Länge der Datei über den Dateikanal ändern, ändert sich die Länge, die über das ursprüngliche Objekt angezeigt wird, und umgekehrt. Wenn Sie den Inhalt der Datei ändern, indem Sie Bytes schreiben, ändern Sie den Inhalt, der vom ursprünglichen Objekt angezeigt wird, und umgekehrt.

"Open-Mode">

An verschiedenen Punkten gibt diese Klasse an, dass eine Instanz, die "offen für das Lesen" ist, "offen für das Schreiben" oder "offen für Das Lesen und Schreiben" erforderlich ist. Ein kanal, der über die java.io.FileInputStream#getChannel getChannel Methode einer java.io.FileInputStream Instanz abgerufen wird, ist zum Lesen geöffnet. Ein über die java.io.FileOutputStream#getChannel getChannel Methode einer java.io.FileOutputStream Instanz abgerufener Kanal ist zum Schreiben geöffnet. Schließlich wird ein Kanal, der über die java.io.RandomAccessFile#getChannel getChannel Methode einer java.io.RandomAccessFile Instanz abgerufen wird, zum Lesen geöffnet, wenn die Instanz mit dem Modus "r" erstellt wurde und zum Lesen und Schreiben geöffnet ist, wenn die Instanz mit dem Modus "rw"erstellt wurde.

"Anfügemodus">

Ein Dateikanal, der zum Schreiben geöffnet ist, kann sich im Anfügemodus befinden, z. B. wenn er aus einem Dateiausgabedatenstrom abgerufen wurde, der durch Aufrufen des java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean) Konstruktors erstellt und für den zweiten Parameter übergeben true wurde. In diesem Modus wechselt jeder Aufruf eines relativen Schreibvorgangs zuerst die Position zum Ende der Datei und schreibt dann die angeforderten Daten. Ob die Weiterentwicklung der Position und der Schreibvorgang der Daten in einem einzelnen Atombetrieb erfolgt, ist systemabhängig und somit nicht angegeben.

In 1.4 hinzugefügt.

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

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
FileChannel()

Initialisiert eine neue Instanz dieser Klasse.

FileChannel(IntPtr, JniHandleOwnership)

Ein Konstruktor, der beim Erstellen verwalteter Darstellungen von JNI-Objekten verwendet wird; wird von der Laufzeit aufgerufen.

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

Gibt true zurück, wenn dieser Kanal geöffnet ist.

(Geerbt von AbstractInterruptibleChannel)
JniIdentityHashCode

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

(Geerbt von Object)
JniManagedPeerState

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

(Geerbt von JavaObject)
JniPeerMembers

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

PeerReference

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

(Geerbt von Object)
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

Methoden

Name Beschreibung
Begin()

Markiert den Anfang eines E/A-Vorgangs, der auf unbestimmte Zeit blockiert werden kann.

(Geerbt von AbstractInterruptibleChannel)
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Close()

Schließt diesen Kanal.

(Geerbt von AbstractInterruptibleChannel)
Construct(JniObjectReference, JniObjectReferenceOptions)

Ein Kanal zum Lesen, Schreiben, Zuordnen 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 Kanal zum Lesen, Schreiben, Zuordnen und Bearbeiten einer Datei.

(Geerbt von JavaObject)
End(Boolean)

Markiert das Ende eines E/A-Vorgangs, der auf unbestimmte Zeit blockiert werden kann.

(Geerbt von AbstractInterruptibleChannel)
Equals(Object)

Ein Kanal zum Lesen, Schreiben, Zuordnen 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.

ForceAsync(Boolean)

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

GetHashCode()

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

(Geerbt von Object)
ImplCloseChannel()

Schließt diesen Kanal.

(Geerbt von AbstractInterruptibleChannel)
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)

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

Map(FileChannel+MapMode, Int64, Int64)

Ordnet eine Region der Datei dieses Kanals direkt in den Arbeitsspeicher zu.

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>, IFileAttribute[])

Öffnet oder erstellt eine Datei und gibt einen Dateikanal zurück, um auf die Datei zuzugreifen.

Open(IPath, IOpenOption[])

Öffnet oder erstellt eine Datei und gibt einen Dateikanal zurück, um auf die Datei zuzugreifen.

Position()

Gibt die Dateiposition dieses Kanals zurück.

Position(Int64)

Legt die Dateiposition dieses Kanals fest.

Read(ByteBuffer, Int64)

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

Read(ByteBuffer)

Liest eine Abfolge von Bytes aus diesem Kanal in den angegebenen Puffer.

Read(ByteBuffer[], Int32, Int32)

Liest eine Abfolge von Bytes aus diesem Kanal in eine Untermenge der angegebenen Puffer.

Read(ByteBuffer[])

Liest eine Abfolge von Bytes aus diesem Kanal in die angegebenen Puffer.

ReadAsync(ByteBuffer, Int64)

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

ReadAsync(ByteBuffer)

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

ReadAsync(ByteBuffer[], Int32, Int32)

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

ReadAsync(ByteBuffer[])

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

SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Ein Kanal zum Lesen, Schreiben, Zuordnen 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)
TransferFrom(IReadableByteChannel, Int64, Int64)

Überträgt Bytes aus dem angegebenen lesbaren Bytekanal in die Datei dieses Kanals.

TransferFromAsync(IReadableByteChannel, Int64, Int64)

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

TransferTo(Int64, Int64, IWritableByteChannel)

Überträgt Bytes aus der Datei dieses Kanals an den angegebenen schreibbaren Bytekanal.

TransferToAsync(Int64, Int64, IWritableByteChannel)

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

Truncate(Int64)

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

TruncateAsync(Int64)

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

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)

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

Write(ByteBuffer)

Schreibt eine Folge von Bytes aus dem angegebenen Puffer in diesen Kanal.

Write(ByteBuffer[], Int32, Int32)

Schreibt eine Folge von Bytes aus einer Untermenge der angegebenen Puffer in diesen Kanal.

Write(ByteBuffer[])

Schreibt eine Bytesequenz aus den angegebenen Puffern in diesen Kanal.

WriteAsync(ByteBuffer, Int64)

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

WriteAsync(ByteBuffer)

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

WriteAsync(ByteBuffer[], Int32, Int32)

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

WriteAsync(ByteBuffer[])

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

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

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

(Geerbt von JavaObject)
IJavaPeerable.Finalized()

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

(Geerbt von JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

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

(Geerbt von JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(Geerbt von JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(Geerbt von JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(Geerbt von JavaObject)
IJavaPeerable.UnregisterFromRuntime()

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

ISeekableByteChannel.Position(Int64)

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

ISeekableByteChannel.Truncate(Int64)

Ein Kanal zum Lesen, Schreiben, Zuordnen 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 Kanal zum Lesen, Schreiben, Zuordnen und Bearbeiten einer Datei.

ReadAsync(IReadableByteChannel, ByteBuffer)

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

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

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

ReadAsync(IScatteringByteChannel, ByteBuffer[])

Ein Kanal zum Lesen, Schreiben, Zuordnen 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.

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

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

WriteAsync(IGatheringByteChannel, ByteBuffer[])

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

WriteAsync(IWritableByteChannel, ByteBuffer)

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

Gilt für: