FileChannel Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier.
[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
- Héritage
- Attributs
- Implémente
Remarques
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier.
Un canal de fichiers est un SeekableByteChannel canal connecté à un fichier. Il a une position actuelle dans son fichier qui peut être à la fois #position() <i>queried</i> et #position(long) <i>modified</i>. Le fichier lui-même contient une séquence d’octets de longueur variable qui peut être lue et écrite et dont le courant #size <i>size</i> peut être interrogé. La taille du fichier augmente lorsque les octets sont écrits au-delà de sa taille actuelle ; la taille du fichier diminue lorsqu’il est #truncate <i>truncated</i>. Le fichier peut également avoir certaines métadonnées associées, telles que les autorisations d’accès, le type de contenu et l’heure de dernière modification ; cette classe ne définit pas de méthodes pour l’accès aux métadonnées.
Outre les opérations de lecture, d’écriture et de fermeture familières des canaux d’octets, cette classe définit les opérations spécifiques aux fichiers suivantes :
<ul>
<li>
Les octets peuvent être #read(ByteBuffer, long) read ou #write(ByteBuffer, long) <i>written</i> à une position absolue dans un fichier d’une manière qui n’affecte pas la position actuelle du canal.
</li>
<li>
Une région d’un fichier peut être #map <i>mapped</i> directement en mémoire ; pour les fichiers volumineux, cela est souvent beaucoup plus efficace que d’appeler les méthodes habituellesread.write
</li>
<li>
Les mises à jour apportées à un fichier peuvent être #force <i>forced out</i> effectuées sur l’appareil de stockage sous-jacent, ce qui garantit que les données ne sont pas perdues en cas de blocage du système.
</li>
<li>
Les octets peuvent être transférés à partir d’un fichier #transferTo <i>to some other channel</i>et #transferFrom <i>vice versa</i>, d’une manière qui peut être optimisée par de nombreux systèmes d’exploitation dans un transfert très rapide directement vers ou depuis le cache du système de fichiers.
</li>
<li>
Une région d’un fichier peut être FileLock <i>locked</i> contre l’accès par d’autres programmes.
</li>
</ul>
Les canaux de fichiers sont sécurisés pour être utilisés par plusieurs threads simultanés. La Channel#close close méthode peut être appelée à tout moment, comme spécifié par l’interface Channel . Une seule opération qui implique la position du canal ou peut modifier la taille de son fichier peut être en cours à tout moment ; tente de lancer une deuxième opération de ce type alors que la première est toujours en cours bloque jusqu’à ce que la première opération se termine. D’autres opérations, notamment celles qui prennent une position explicite, peuvent se poursuivre simultanément ; s’ils le font en fait dépend de l’implémentation sous-jacente et n’est donc pas spécifié.
La vue d’un fichier fourni par une instance de cette classe est garantie d’être cohérente avec d’autres vues du même fichier fourni par d’autres instances du même programme. Toutefois, la vue fournie par une instance de cette classe peut ou non être cohérente avec les vues vues par d’autres programmes en cours d’exécution simultanée en raison de la mise en cache effectuée par le système d’exploitation sous-jacent et des retards induits par les protocoles de système de fichiers réseau. Cela est vrai, quel que soit le langage dans lequel ces autres programmes sont écrits, et s’ils s’exécutent sur le même ordinateur ou sur un autre ordinateur. La nature exacte de toutes ces incohérences dépend du système et ne sont donc pas spécifiées.
Un canal de fichier est créé en appelant l’une des #open open méthodes définies par cette classe. Un canal de fichier peut également être obtenu à partir d’un objet existant java.io.FileInputStream#getChannel FileInputStreamou java.io.FileOutputStream#getChannel FileOutputStreamjava.io.RandomAccessFile#getChannel RandomAccessFile d’un objet en appelant la méthode de cet getChannel objet, qui retourne un canal de fichier connecté au même fichier sous-jacent. Lorsque le canal de fichier est obtenu à partir d’un flux existant ou d’un fichier d’accès aléatoire, l’état du canal de fichier est intimement connecté à celui de l’objet dont getChannel la méthode a retourné le canal. La modification de la position du canal, que ce soit explicitement ou en lisant ou en écrivant des octets, modifie la position du fichier de l’objet d’origine, et inversement. La modification de la longueur du fichier via le canal de fichier modifie la longueur affichée via l’objet d’origine, et vice versa. La modification du contenu du fichier en écrivant des octets modifie le contenu affiché par l’objet d’origine, et vice versa.
« open-mode »>
À différents points, cette classe spécifie qu’une instance « ouverte pour la lecture », « ouverte pour l’écriture » ou « ouverte pour la lecture et l’écriture » est requise. Un canal obtenu via la java.io.FileInputStream#getChannel getChannel méthode d’une java.io.FileInputStream instance sera ouvert pour la lecture. Un canal obtenu via la java.io.FileOutputStream#getChannel getChannel méthode d’une java.io.FileOutputStream instance sera ouvert pour l’écriture. Enfin, un canal obtenu via la java.io.RandomAccessFile#getChannel getChannel méthode d’une java.io.RandomAccessFile instance sera ouvert pour la lecture si l’instance a été créée avec le mode "r" et sera ouverte pour la lecture et l’écriture si l’instance a été créée avec le mode "rw".
« append-mode »>
Un canal de fichiers ouvert pour l’écriture peut être en mode Ajout, par exemple s’il a été obtenu à partir d’un flux de sortie de fichier créé en appelant le java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean) constructeur et en passant true pour le deuxième paramètre. Dans ce mode, chaque appel d’une opération d’écriture relative avance d’abord la position à la fin du fichier, puis écrit les données demandées. Si l’avancement de la position et l’écriture des données sont effectués dans une seule opération atomique dépend du système et n’est donc pas spécifié.
Ajouté dans la version 1.4.
Documentation Java pour java.nio.channels.FileChannel.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.
Constructeurs
| Nom | Description |
|---|---|
| FileChannel() |
Initialise une nouvelle instance de cette classe. |
| FileChannel(IntPtr, JniHandleOwnership) |
Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime. |
Propriétés
| Nom | Description |
|---|---|
| Class |
Retourne la classe runtime de ce |
| Handle |
Handle de l’instance Android sous-jacente. (Hérité de Object) |
| IsOpen |
Retourne true si ce canal est ouvert. (Hérité de AbstractInterruptibleChannel) |
| JniIdentityHashCode |
Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité. (Hérité de Object) |
| JniManagedPeerState |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| JniPeerMembers |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| PeerReference |
Obtient la référence d’objet JNI pour cet homologue Java. (Hérité de Object) |
| ThresholdClass |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. |
| ThresholdType |
Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code. |
Méthodes
| Nom | Description |
|---|---|
| Begin() |
Marque le début d’une opération d’E/S susceptible de bloquer indéfiniment. (Hérité de AbstractInterruptibleChannel) |
| Clone() |
Crée et retourne une copie de cet objet. (Hérité de Object) |
| Close() |
Ferme ce canal. (Hérité de AbstractInterruptibleChannel) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| Dispose() |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| Dispose(Boolean) |
Libère les ressources détenues par cet homologue Java. (Hérité de Object) |
| DisposeUnlessReferenced() |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| End(Boolean) |
Marque la fin d’une opération d’E/S susceptible de bloquer indéfiniment. (Hérité de AbstractInterruptibleChannel) |
| Equals(Object) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| Equals(Object) |
Indique si un autre objet est « égal à » celui-ci. (Hérité de Object) |
| Force(Boolean) |
Force les mises à jour du fichier de ce canal à écrire sur l’appareil de stockage qui le contient. |
| ForceAsync(Boolean) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| GetHashCode() |
Retourne une valeur de code de hachage pour l'objet. (Hérité de Object) |
| ImplCloseChannel() |
Ferme ce canal. (Hérité de AbstractInterruptibleChannel) |
| JavaFinalize() |
Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet. (Hérité de Object) |
| Lock() |
Acquiert un verrou exclusif sur le fichier de ce canal. |
| Lock(Int64, Int64, Boolean) |
Acquiert un verrou sur la région donnée du fichier de ce canal. |
| Map(FileChannel+MapMode, Int64, Int64) |
Mappe une région du fichier de ce canal directement en mémoire. |
| Notify() |
Réveille un thread unique qui attend le moniteur de cet objet. (Hérité de Object) |
| NotifyAll() |
Réveille tous les threads qui attendent le moniteur de cet objet. (Hérité de Object) |
| Open(IPath, ICollection<IOpenOption>, IFileAttribute[]) |
Ouvre ou crée un fichier, retournant un canal de fichiers pour accéder au fichier. |
| Open(IPath, IOpenOption[]) |
Ouvre ou crée un fichier, retournant un canal de fichiers pour accéder au fichier. |
| Position() |
Retourne la position du fichier de ce canal. |
| Position(Int64) |
Définit la position du fichier de ce canal. |
| Read(ByteBuffer, Int64) |
Lit une séquence d’octets de ce canal dans la mémoire tampon donnée, en commençant à la position de fichier donnée. |
| Read(ByteBuffer) |
Lit une séquence d’octets de ce canal dans la mémoire tampon donnée. |
| Read(ByteBuffer[], Int32, Int32) |
Lit une séquence d’octets de ce canal dans une sous-séquence des mémoires tampons données. |
| Read(ByteBuffer[]) |
Lit une séquence d’octets de ce canal dans les mémoires tampons données. |
| ReadAsync(ByteBuffer, Int64) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ReadAsync(ByteBuffer) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ReadAsync(ByteBuffer[], Int32, Int32) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ReadAsync(ByteBuffer[]) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| SetHandle(IntPtr, JniHandleOwnership) |
Définit la propriété Handle. (Hérité de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| Size() |
Retourne la taille actuelle du fichier de ce canal. |
| ToArray<T>() |
Crée un tableau managé à partir de ce wrapper de tableau Java. (Hérité de Object) |
| ToString() |
Retourne une représentation de chaîne de l'objet. (Hérité de Object) |
| TransferFrom(IReadableByteChannel, Int64, Int64) |
Transfère les octets dans le fichier de ce canal à partir du canal d’octets lisible donné. |
| TransferFromAsync(IReadableByteChannel, Int64, Int64) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| TransferTo(Int64, Int64, IWritableByteChannel) |
Transfère les octets du fichier de ce canal vers le canal d’octet accessible en écriture donné. |
| TransferToAsync(Int64, Int64, IWritableByteChannel) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| Truncate(Int64) |
Tronque le fichier de ce canal à la taille donnée. |
| TruncateAsync(Int64) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| TryLock() |
Tente d’acquérir un verrou exclusif sur le fichier de ce canal. |
| TryLock(Int64, Int64, Boolean) |
Tente d’acquérir un verrou sur la région donnée du fichier de ce canal. |
| UnregisterFromRuntime() |
Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité. (Hérité de Object) |
| Wait() |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<> (Hérité de Object) |
| Wait(Int64, Int32) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Wait(Int64) |
Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée. (Hérité de Object) |
| Write(ByteBuffer, Int64) |
Écrit une séquence d’octets dans ce canal à partir de la mémoire tampon donnée, en commençant à la position de fichier donnée. |
| Write(ByteBuffer) |
Écrit une séquence d’octets dans ce canal à partir de la mémoire tampon donnée. |
| Write(ByteBuffer[], Int32, Int32) |
Écrit une séquence d’octets dans ce canal à partir d’une sous-séquence des mémoires tampons données. |
| Write(ByteBuffer[]) |
Écrit une séquence d’octets dans ce canal à partir des mémoires tampons données. |
| WriteAsync(ByteBuffer, Int64) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| WriteAsync(ByteBuffer) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| WriteAsync(ByteBuffer[], Int32, Int32) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| WriteAsync(ByteBuffer[]) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IJavaPeerable.Disposed() |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| IJavaPeerable.Finalized() |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. (Hérité de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ISeekableByteChannel.Position(Int64) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ISeekableByteChannel.Truncate(Int64) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
Méthodes d’extension
| Nom | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtient le nom JNI du type de l’instance |
| JavaAs<TResult>(IJavaPeerable) |
Essayez de forcer |
| JavaCast<TResult>(IJavaObject) |
Effectue une conversion de type vérifiée par le runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Essayez de forcer |
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
Canal de lecture, d’écriture, de mappage et de manipulation d’un fichier. |