FileChannel Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Un canal para leer, escribir, asignar y manipular un archivo.
[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
- Herencia
- Atributos
- Implementaciones
Comentarios
Un canal para leer, escribir, asignar y manipular un archivo.
Un canal de archivo es un SeekableByteChannel que está conectado a un archivo. Tiene una posición actual dentro de su archivo que puede ser y #position() <i>queried</i>#position(long) <i>modified</i>. El propio archivo contiene una secuencia de bytes de longitud variable que se puede leer y escribir y cuyo actual #size <i>size</i> se puede consultar. El tamaño del archivo aumenta cuando los bytes se escriben más allá de su tamaño actual; el tamaño del archivo disminuye cuando es #truncate <i>truncated</i>. El archivo también puede tener algunos metadatos asociados, como permisos de acceso, tipo de contenido y hora de última modificación; esta clase no define métodos para el acceso a metadatos.
Además de las operaciones conocidas de lectura, escritura y cierre de canales de bytes, esta clase define las siguientes operaciones específicas del archivo:
<ul>
<li>
Los bytes pueden ser #read(ByteBuffer, long) read o #write(ByteBuffer, long) <i>written</i> en una posición absoluta de un archivo de una manera que no afecte a la posición actual del canal.
</li>
<li>
Una región de un archivo puede estar #map <i>mapped</i> directamente en memoria; para los archivos grandes, esto suele ser mucho más eficaz que invocar los métodos o read habitualeswrite.
</li>
<li>
Las actualizaciones realizadas en un archivo pueden ser #force <i>forced out</i> para el dispositivo de almacenamiento subyacente, lo que garantiza que los datos no se pierdan en caso de bloqueo del sistema.
</li>
<li>
Los bytes se pueden transferir desde un archivo #transferTo <i>to some other channel</i>y #transferFrom <i>vice versa</i>, de una manera que muchos sistemas operativos pueden optimizar en una transferencia muy rápida directamente a o desde la caché del sistema de archivos.
</li>
<li>
Es posible que otros programas accedan FileLock <i>locked</i> a una región de un archivo.
</li>
</ul>
Los canales de archivo son seguros para su uso por varios subprocesos simultáneos. El Channel#close close método se puede invocar en cualquier momento, según lo especificado por la Channel interfaz. Solo una operación que implique la posición del canal o puede cambiar el tamaño de su archivo puede estar en curso en un momento dado; los intentos de iniciar una segunda operación de este tipo mientras el primero todavía está en curso se bloquearán hasta que se complete la primera operación. Otras operaciones, en particular las que toman una posición explícita, pueden continuar simultáneamente; si de hecho lo hacen depende de la implementación subyacente y, por tanto, no se especifica.
Se garantiza que la vista de un archivo proporcionado por una instancia de esta clase sea coherente con otras vistas del mismo archivo proporcionado por otras instancias del mismo programa. Sin embargo, la vista proporcionada por una instancia de esta clase puede o no ser coherente con las vistas que ven otros programas en ejecución simultánea debido al almacenamiento en caché realizado por el sistema operativo subyacente y retrasos provocados por protocolos de sistema de archivos de red. Esto es cierto independientemente del idioma en el que se escriben estos otros programas y si se ejecutan en la misma máquina o en algún otro equipo. La naturaleza exacta de cualquiera de estas incoherencias depende del sistema y, por tanto, no se especifica.
Para crear un canal de archivo, se invoca uno de los #open open métodos definidos por esta clase. Un canal de archivo también se puede obtener de un objeto , java.io.FileInputStream#getChannel FileInputStreamo java.io.FileOutputStream#getChannel FileOutputStream existente java.io.RandomAccessFile#getChannel RandomAccessFileinvocando el método de getChannel ese objeto, que devuelve un canal de archivo que está conectado al mismo archivo subyacente. Cuando el canal de archivo se obtiene de una secuencia existente o un archivo de acceso aleatorio, el estado del canal de archivo está íntimamente conectado al del objeto cuyo getChannel método devolvió el canal. Cambiar la posición del canal, ya sea explícitamente o leyendo o escribiendo bytes, cambiará la posición del archivo del objeto de origen y viceversa. Cambiar la longitud del archivo a través del canal de archivo cambiará la longitud vista a través del objeto de origen y viceversa. Cambiar el contenido del archivo escribiendo bytes cambiará el contenido visto por el objeto de origen y viceversa.
"modo abierto">
En varios puntos, esta clase especifica que se requiere una instancia "abierta para leer", "abrir para escribir" o "abrir para leer y escribir". Se abrirá un canal obtenido a través del java.io.FileInputStream#getChannel getChannel método de una java.io.FileInputStream instancia para su lectura. Se abrirá un canal obtenido a través del java.io.FileOutputStream#getChannel getChannel método de una java.io.FileOutputStream instancia para escribir. Por último, un canal obtenido a través del java.io.RandomAccessFile#getChannel getChannel método de una java.io.RandomAccessFile instancia se abrirá para leer si la instancia se creó con el modo "r" y se abrirá para leer y escribir si la instancia se creó con el modo "rw".
"append-mode">
Un canal de archivo abierto para escribir puede estar en modo de anexión, por ejemplo, si se obtuvo de un flujo de salida de archivo creado invocando el java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean) constructor y pasando true para el segundo parámetro. En este modo, cada invocación de una operación de escritura relativa avanza primero la posición al final del archivo y, a continuación, escribe los datos solicitados. Si el avance de la posición y la escritura de los datos se realizan en una sola operación atómica depende del sistema y, por tanto, no se especifica.
Agregado en la versión 1.4.
Java documentación para java.nio.channels.FileChannel.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Constructores
| Nombre | Description |
|---|---|
| FileChannel() |
Inicializa una nueva instancia de esta clase. |
| FileChannel(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el tiempo de ejecución. |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
| IsOpen |
Devuelve true si este canal está abierto. (Heredado de AbstractInterruptibleChannel) |
| JniIdentityHashCode |
Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| JniManagedPeerState |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| JniPeerMembers |
Un canal para leer, escribir, asignar y manipular un archivo. |
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
| ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
Métodos
| Nombre | Description |
|---|---|
| Begin() |
Marca el principio de una operación de E/S que podría bloquearse indefinidamente. (Heredado de AbstractInterruptibleChannel) |
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de Object) |
| Close() |
Cierra este canal. (Heredado de AbstractInterruptibleChannel) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| Dispose() |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| Dispose(Boolean) |
Libera los recursos mantenidos por este Java del mismo nivel. (Heredado de Object) |
| DisposeUnlessReferenced() |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| End(Boolean) |
Marca el final de una operación de E/S que podría bloquearse indefinidamente. (Heredado de AbstractInterruptibleChannel) |
| Equals(Object) |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| Force(Boolean) |
Obliga a que las actualizaciones del archivo de este canal se escriban en el dispositivo de almacenamiento que lo contiene. |
| ForceAsync(Boolean) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| GetHashCode() |
Devuelve un valor de código hash para el objeto . (Heredado de Object) |
| ImplCloseChannel() |
Cierra este canal. (Heredado de AbstractInterruptibleChannel) |
| JavaFinalize() |
Obsoletos.
Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto . (Heredado de Object) |
| Lock() |
Adquiere un bloqueo exclusivo en el archivo de este canal. |
| Lock(Int64, Int64, Boolean) |
Adquiere un bloqueo en la región especificada del archivo de este canal. |
| Map(FileChannel+MapMode, Int64, Int64) |
Asigna una región del archivo de este canal directamente a la memoria. |
| Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
| NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
| Open(IPath, ICollection<IOpenOption>, IFileAttribute[]) |
Abre o crea un archivo y devuelve un canal de archivo para acceder al archivo. |
| Open(IPath, IOpenOption[]) |
Abre o crea un archivo y devuelve un canal de archivo para acceder al archivo. |
| Position() |
Devuelve la posición del archivo de este canal. |
| Position(Int64) |
Establece la posición del archivo de este canal. |
| Read(ByteBuffer, Int64) |
Lee una secuencia de bytes de este canal en el búfer especificado, empezando por la posición de archivo especificada. |
| Read(ByteBuffer) |
Lee una secuencia de bytes de este canal en el búfer especificado. |
| Read(ByteBuffer[], Int32, Int32) |
Lee una secuencia de bytes de este canal en una subsecuencia de los búferes especificados. |
| Read(ByteBuffer[]) |
Lee una secuencia de bytes de este canal en los búferes especificados. |
| ReadAsync(ByteBuffer, Int64) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ReadAsync(ByteBuffer) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ReadAsync(ByteBuffer[], Int32, Int32) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ReadAsync(ByteBuffer[]) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| Size() |
Devuelve el tamaño actual del archivo de este canal. |
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToString() |
Devuelve una representación de cadena del objeto . (Heredado de Object) |
| TransferFrom(IReadableByteChannel, Int64, Int64) |
Transfiere bytes al archivo de este canal desde el canal de bytes legible especificado. |
| TransferFromAsync(IReadableByteChannel, Int64, Int64) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| TransferTo(Int64, Int64, IWritableByteChannel) |
Transfiere bytes del archivo de este canal al canal de bytes grabable especificado. |
| TransferToAsync(Int64, Int64, IWritableByteChannel) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| Truncate(Int64) |
Trunca el archivo de este canal al tamaño especificado. |
| TruncateAsync(Int64) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| TryLock() |
Intenta adquirir un bloqueo exclusivo en el archivo de este canal. |
| TryLock(Int64, Int64, Boolean) |
Intenta adquirir un bloqueo en la región especificada del archivo de este canal. |
| UnregisterFromRuntime() |
Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad. (Heredado de Object) |
| Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><> (Heredado de Object) |
| Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
| Write(ByteBuffer, Int64) |
Escribe una secuencia de bytes en este canal desde el búfer especificado, empezando por la posición de archivo especificada. |
| Write(ByteBuffer) |
Escribe una secuencia de bytes en este canal desde el búfer especificado. |
| Write(ByteBuffer[], Int32, Int32) |
Escribe una secuencia de bytes en este canal desde una subsecuencia de los búferes especificados. |
| Write(ByteBuffer[]) |
Escribe una secuencia de bytes en este canal desde los búferes especificados. |
| WriteAsync(ByteBuffer, Int64) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| WriteAsync(ByteBuffer) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| WriteAsync(ByteBuffer[], Int32, Int32) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| WriteAsync(ByteBuffer[]) |
Un canal para leer, escribir, asignar y manipular un archivo. |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| IJavaPeerable.Disposed() |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| IJavaPeerable.Finalized() |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Un canal para leer, escribir, asignar y manipular un archivo. (Heredado de JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ISeekableByteChannel.Position(Int64) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ISeekableByteChannel.Truncate(Int64) |
Un canal para leer, escribir, asignar y manipular un archivo. |
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
Un canal para leer, escribir, asignar y manipular un archivo. |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
Un canal para leer, escribir, asignar y manipular un archivo. |