FileChannel Classe

Definição

Um canal para ler, gravar, mapear e manipular um arquivo.

[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
Herança
Atributos
Implementações

Comentários

Um canal para ler, gravar, mapear e manipular um arquivo.

Um canal de arquivo é um SeekableByteChannel que está conectado a um arquivo. Ele tem uma posição atual dentro de seu arquivo que pode ser ambos #position() <i>queried</i> e #position(long) <i>modified</i>. O arquivo em si contém uma sequência de bytes de comprimento variável que pode ser lida e gravada e cuja corrente #size <i>size</i> pode ser consultada. O tamanho do arquivo aumenta quando bytes são gravados além do tamanho atual; o tamanho do arquivo diminui quando ele é #truncate <i>truncated</i>. O arquivo também pode ter alguns metadados associados, como permissões de acesso, tipo de conteúdo e hora de última modificação; essa classe não define métodos para acesso a metadados.

Além das operações familiares de leitura, gravação e fechamento de canais de bytes, essa classe define as seguintes operações específicas do arquivo:

<ul>

<li>

Bytes podem estar #read(ByteBuffer, long) read ou #write(ByteBuffer, long) <i>written</i> em uma posição absoluta em um arquivo de uma forma que não afete a posição atual do canal.

</li>

<li>

Uma região de um arquivo pode estar #map <i>mapped</i> diretamente na memória; para arquivos grandes, isso geralmente é muito mais eficiente do que invocar os métodos ou write usuaisread.

</li>

<li>

As atualizações feitas em um arquivo podem ser #force <i>forced out</i> para o dispositivo de armazenamento subjacente, garantindo que os dados não sejam perdidos no caso de uma falha do sistema.

</li>

<li>

Os bytes podem ser transferidos de um arquivo #transferTo <i>to some other channel</i>e #transferFrom <i>vice versa</i>, de uma forma que pode ser otimizada por muitos sistemas operacionais para uma transferência muito rápida diretamente para ou do cache do sistema de arquivos.

</li>

<li>

Uma região de um arquivo pode ser FileLock <i>locked</i> contra o acesso por outros programas.

</li>

</ul>

Os canais de arquivo são seguros para uso por vários threads simultâneos. O Channel#close close método pode ser invocado a qualquer momento, conforme especificado pela Channel interface. Apenas uma operação que envolve a posição do canal ou pode alterar o tamanho do arquivo pode estar em andamento a qualquer momento; tenta iniciar uma segunda operação desse tipo enquanto a primeira ainda está em andamento será bloqueada até que a primeira operação seja concluída. Outras operações, em particular aquelas que tomam uma posição explícita, podem continuar simultaneamente; se, de fato, elas dependem da implementação subjacente e, portanto, não são especificadas.

A exibição de um arquivo fornecido por uma instância dessa classe tem a garantia de ser consistente com outras exibições do mesmo arquivo fornecidas por outras instâncias no mesmo programa. A exibição fornecida por uma instância dessa classe pode ou não ser consistente com as exibições vistas por outros programas em execução simultânea devido ao cache executado pelo sistema operacional subjacente e atrasos induzidos por protocolos de sistema de arquivos de rede. Isso é verdadeiro independentemente da linguagem em que esses outros programas são escritos e se eles estão em execução no mesmo computador ou em algum outro computador. A natureza exata de tais inconsistências são dependentes do sistema e, portanto, não são especificadas.

Um canal de arquivo é criado invocando um dos #open open métodos definidos por essa classe. Um canal de arquivo também pode ser obtido de um objeto ou java.io.RandomAccessFile#getChannel RandomAccessFile um objeto existente java.io.FileInputStream#getChannel FileInputStreamjava.io.FileOutputStream#getChannel FileOutputStreaminvocando o método desse getChannel objeto, que retorna um canal de arquivo que está conectado ao mesmo arquivo subjacente. Quando o canal de arquivo é obtido de um fluxo existente ou de um arquivo de acesso aleatório, o estado do canal de arquivo é intimamente conectado ao do objeto cujo getChannel método retornou o canal. Alterar a posição do canal, seja explicitamente ou lendo ou escrevendo bytes, alterará a posição do arquivo do objeto de origem e vice-versa. Alterar o comprimento do arquivo por meio do canal de arquivo alterará o comprimento visto por meio do objeto de origem e vice-versa. Alterar o conteúdo do arquivo escrevendo bytes alterará o conteúdo visto pelo objeto de origem e vice-versa.

"modo aberto">

Em vários pontos, essa classe especifica que é necessária uma instância "aberta para leitura", "aberta para gravação" ou "aberta para leitura e gravação". Um canal obtido por meio do java.io.FileInputStream#getChannel getChannel método de uma java.io.FileInputStream instância será aberto para leitura. Um canal obtido por meio do java.io.FileOutputStream#getChannel getChannel método de uma java.io.FileOutputStream instância será aberto para gravação. Por fim, um canal obtido por meio do java.io.RandomAccessFile#getChannel getChannel método de uma java.io.RandomAccessFile instância será aberto para leitura se a instância tiver sido criada com o modo "r" e estará aberto para leitura e gravação se a instância tiver sido criada com o modo "rw".

"append-mode">

Um canal de arquivo aberto para gravação pode estar no modo de acréscimo, por exemplo, se ele foi obtido de um fluxo de saída de arquivo que foi criado invocando o java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean) construtor e passando true para o segundo parâmetro. Nesse modo, cada invocação de uma operação de gravação relativa primeiro avança a posição para o final do arquivo e grava os dados solicitados. Se o avanço da posição e da gravação dos dados são feitos em uma única operação atômica é dependente do sistema e, portanto, não especificado.

Adicionado em 1.4.

Java documentação para java.nio.channels.FileChannel.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Construtores

Nome Description
FileChannel()

Inicializa uma nova instância dessa classe.

FileChannel(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Propriedades

Nome Description
Class

Retorna a classe de runtime deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
IsOpen

Retornará true se este canal estiver aberto.

(Herdado de AbstractInterruptibleChannel)
JniIdentityHashCode

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
JniPeerMembers

Um canal para ler, gravar, mapear e manipular um arquivo.

PeerReference

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
Begin()

Marca o início de uma operação de E/S que pode bloquear indefinidamente.

(Herdado de AbstractInterruptibleChannel)
Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Close()

Fecha este canal.

(Herdado de AbstractInterruptibleChannel)
Dispose()

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
Dispose(Boolean)

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
End(Boolean)

Marca o fim de uma operação de E/S que pode bloquear indefinidamente.

(Herdado de AbstractInterruptibleChannel)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
Force(Boolean)

Força todas as atualizações para o arquivo deste canal a serem gravadas no dispositivo de armazenamento que o contém.

ForceAsync(Boolean)

Um canal para ler, gravar, mapear e manipular um arquivo.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
ImplCloseChannel()

Fecha este canal.

(Herdado de AbstractInterruptibleChannel)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Lock()

Adquire um bloqueio exclusivo no arquivo deste canal.

Lock(Int64, Int64, Boolean)

Adquire um bloqueio na região especificada do arquivo deste canal.

Map(FileChannel+MapMode, Int64, Int64)

Mapeia uma região do arquivo desse canal diretamente na memória.

Notify()

Ativa um único thread que está aguardando no monitor deste objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Open(IPath, ICollection<IOpenOption>, IFileAttribute[])

Abre ou cria um arquivo, retornando um canal de arquivo para acessar o arquivo.

Open(IPath, IOpenOption[])

Abre ou cria um arquivo, retornando um canal de arquivo para acessar o arquivo.

Position()

Retorna a posição do arquivo deste canal.

Position(Int64)

Define a posição do arquivo desse canal.

Read(ByteBuffer, Int64)

Lê uma sequência de bytes desse canal no buffer fornecido, começando na posição de arquivo fornecida.

Read(ByteBuffer)

Lê uma sequência de bytes desse canal no buffer fornecido.

Read(ByteBuffer[], Int32, Int32)

Lê uma sequência de bytes desse canal em uma subsequência dos buffers fornecidos.

Read(ByteBuffer[])

Lê uma sequência de bytes desse canal nos buffers fornecidos.

ReadAsync(ByteBuffer, Int64)

Um canal para ler, gravar, mapear e manipular um arquivo.

ReadAsync(ByteBuffer)

Um canal para ler, gravar, mapear e manipular um arquivo.

ReadAsync(ByteBuffer[], Int32, Int32)

Um canal para ler, gravar, mapear e manipular um arquivo.

ReadAsync(ByteBuffer[])

Um canal para ler, gravar, mapear e manipular um arquivo.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
Size()

Retorna o tamanho atual do arquivo deste canal.

ToArray<T>()

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
TransferFrom(IReadableByteChannel, Int64, Int64)

Transfere bytes para o arquivo deste canal do canal de bytes legível especificado.

TransferFromAsync(IReadableByteChannel, Int64, Int64)

Um canal para ler, gravar, mapear e manipular um arquivo.

TransferTo(Int64, Int64, IWritableByteChannel)

Transfere bytes do arquivo deste canal para o canal de bytes gravável especificado.

TransferToAsync(Int64, Int64, IWritableByteChannel)

Um canal para ler, gravar, mapear e manipular um arquivo.

Truncate(Int64)

Trunca o arquivo desse canal para o tamanho fornecido.

TruncateAsync(Int64)

Um canal para ler, gravar, mapear e manipular um arquivo.

TryLock()

Tenta adquirir um bloqueio exclusivo no arquivo deste canal.

TryLock(Int64, Int64, Boolean)

Tenta adquirir um bloqueio na região especificada do arquivo deste canal.

UnregisterFromRuntime()

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Write(ByteBuffer, Int64)

Grava uma sequência de bytes nesse canal do buffer fornecido, começando na posição de arquivo fornecida.

Write(ByteBuffer)

Grava uma sequência de bytes nesse canal do buffer fornecido.

Write(ByteBuffer[], Int32, Int32)

Grava uma sequência de bytes nesse canal de uma subsequência dos buffers fornecidos.

Write(ByteBuffer[])

Grava uma sequência de bytes neste canal dos buffers fornecidos.

WriteAsync(ByteBuffer, Int64)

Um canal para ler, gravar, mapear e manipular um arquivo.

WriteAsync(ByteBuffer)

Um canal para ler, gravar, mapear e manipular um arquivo.

WriteAsync(ByteBuffer[], Int32, Int32)

Um canal para ler, gravar, mapear e manipular um arquivo.

WriteAsync(ByteBuffer[])

Um canal para ler, gravar, mapear e manipular um arquivo.

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
IJavaPeerable.Finalized()

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um canal para ler, gravar, mapear e manipular um arquivo.

(Herdado de Object)
ISeekableByteChannel.Position(Int64)

Um canal para ler, gravar, mapear e manipular um arquivo.

ISeekableByteChannel.Truncate(Int64)

Um canal para ler, gravar, mapear e manipular um arquivo.

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

Um canal para ler, gravar, mapear e manipular um arquivo.

ReadAsync(IReadableByteChannel, ByteBuffer)

Um canal para ler, gravar, mapear e manipular um arquivo.

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

Um canal para ler, gravar, mapear e manipular um arquivo.

ReadAsync(IScatteringByteChannel, ByteBuffer[])

Um canal para ler, gravar, mapear e manipular um arquivo.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

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

Um canal para ler, gravar, mapear e manipular um arquivo.

WriteAsync(IGatheringByteChannel, ByteBuffer[])

Um canal para ler, gravar, mapear e manipular um arquivo.

WriteAsync(IWritableByteChannel, ByteBuffer)

Um canal para ler, gravar, mapear e manipular um arquivo.

Aplica-se a