FileChannel Clase

Definición

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.Interop.IJavaPeerable, 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 afecta a la posición actual del canal.

</Li>

<Li>

Una región de un archivo puede estar #map <i>mapped</i> directamente en la memoria; en el caso de los archivos grandes, esto suele ser mucho más eficaz que invocar los métodos o write habitualesread.

</Li>

<Li>

Novedades realizado en un archivo puede 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>

Otra región de un archivo puede estar FileLock <i>locked</i> en contra del acceso de otros programas.

</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; intenta iniciar una segunda operación de este tipo, mientras que la primera todavía está en curso se bloqueará hasta que se complete la primera operación. Otras operaciones, en particular aquellas que toman una posición explícita, pueden continuar simultáneamente; si, de hecho, dependen de la implementación subyacente y, por tanto, no se especifican.

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 los retrasos provocados por los protocolos del sistema de archivos de red. Esto es cierto independientemente del idioma en el que se escriben estos otros programas y si se ejecutan en el mismo equipo o en algún otro equipo. La naturaleza exacta de estas incoherencias depende del sistema y, por tanto, no se especifica.

Se crea un canal de archivo invocando uno de los #open open métodos definidos por esta clase. Un canal de archivo también se puede obtener a partir de un objeto , java.io.FileOutputStream#getChannel FileOutputStreamo java.io.RandomAccessFile#getChannel RandomAccessFile existente java.io.FileInputStream#getChannel FileInputStreaminvocando 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á conectado íntimamente al del objeto cuyo getChannel método devolvió el canal. Si cambia 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. Al cambiar el contenido del archivo, escribir 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, se abrirá un canal obtenido a través del java.io.RandomAccessFile#getChannel getChannel método de una java.io.RandomAccessFile instancia 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".

"modo append">

Un canal de archivo que está abierto para escribir puede estar en modo anexado, por ejemplo, si se obtuvo de un flujo de salida de archivo que se creó 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.

Se agregó en la versión 1.4.

Documentación de Java para java.nio.channels.FileChannel.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.

Constructores

FileChannel()

Inicializa una nueva instancia de esta clase.

FileChannel(IntPtr, JniHandleOwnership)

Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el entorno de ejecución.

Propiedades

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
IsOpen

Devuelve true si este canal está abierto.

(Heredado de AbstractInterruptibleChannel)
JniIdentityHashCode

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
JniPeerMembers

Un canal para leer, escribir, asignar y manipular un archivo.

PeerReference

Un canal para leer, escribir, asignar y manipular un archivo.

(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

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

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
Dispose(Boolean)

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
End(Boolean)

Marca el final de una operación de E/S que podría bloquearse indefinidamente.

(Heredado de AbstractInterruptibleChannel)
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 del objeto.

(Heredado de Object)
ImplCloseChannel()

Cierra este canal.

(Heredado de AbstractInterruptibleChannel)
JavaFinalize()

Llamado por 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 determinada 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)

Lee una secuencia de bytes de este canal en el búfer especificado.

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 los búferes especificados.

Read(ByteBuffer[], Int32, Int32)

Lee una secuencia de bytes de este canal en una subsecuencia de los búferes especificados.

ReadAsync(ByteBuffer)

Un canal para leer, escribir, asignar y manipular un archivo.

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.

SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
Size()

Devuelve el tamaño actual del archivo de este canal.

ToArray<T>()

Un canal para leer, escribir, asignar y manipular un archivo.

(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 dado.

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 determinada del archivo de este canal.

UnregisterFromRuntime()

Un canal para leer, escribir, asignar y manipular un archivo.

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

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Write(ByteBuffer)

Escribe una secuencia de bytes en este canal desde el búfer especificado.

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 los búferes especificados.

Write(ByteBuffer[], Int32, Int32)

Escribe una secuencia de bytes en este canal desde una subsecuencia de los búferes especificados.

WriteAsync(ByteBuffer)

Un canal para leer, escribir, asignar y manipular un archivo.

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.

Implementaciones de interfaz explícitas

IJavaPeerable.Disposed()

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
IJavaPeerable.Finalized()

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
IJavaPeerable.JniManagedPeerState

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Un canal para leer, escribir, asignar y manipular un archivo.

(Heredado de Object)
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

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.

GetJniTypeName(IJavaPeerable)

Un canal para leer, escribir, asignar y manipular un archivo.

WriteAsync(IGatheringByteChannel, ByteBuffer[])

Un canal para leer, escribir, asignar y manipular un archivo.

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

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

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.

WriteAsync(IWritableByteChannel, ByteBuffer)

Un canal para leer, escribir, asignar y manipular un archivo.

Se aplica a