Язык

FileChannel Класс

Определение

Канал для чтения, записи, сопоставления и управления файлом.

[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
Наследование
Атрибуты
Реализации

Комментарии

Канал для чтения, записи, сопоставления и управления файлом.

Канал файлов — это SeekableByteChannel канал, подключенный к файлу. Он имеет текущую позицию в файле, который может быть как #position() <i>queried</i> , так и #position(long) <i>modified</i>. Сам файл содержит последовательность байтов переменной длины, которую можно считывать и записывать, а текущий #size <i>size</i> можно запрашивать. Размер файла увеличивается, когда байты записываются за пределы текущего размера; размер файла уменьшается при его использовании #truncate <i>truncated</i>. Файл также может иметь некоторые связанные метаданные , такие как разрешения на доступ, тип контента и время последнего изменения; этот класс не определяет методы для доступа к метаданным.

Помимо знакомых операций чтения, записи и закрытия каналов байтов этот класс определяет следующие операции, связанные с файлами:

<Ул>

<li>

Байты могут быть #read(ByteBuffer, long) read или #write(ByteBuffer, long) <i>written</i> в абсолютной позиции в файле таким образом, что не влияет на текущее положение канала.

</li>

<li>

Область файла может быть #map <i>mapped</i> непосредственно в памяти; для больших файлов это часто гораздо эффективнее, чем вызов обычных read или write методов.

</li>

<li>

Обновления, внесенные в файл, могут быть #force <i>forced out</i> на базовом устройстве хранения, гарантируя, что данные не будут потеряны в случае сбоя системы.

</li>

<li>

Байты можно передавать из файла #transferTo <i>to some other channel</i>, и #transferFrom <i>vice versa</i>таким образом, который может быть оптимизирован многими операционными системами в очень быструю передачу непосредственно в кэш файловой системы или из нее.

</li>

<li>

Область файла может быть FileLock <i>locked</i> против доступа другими программами.

</li>

</ul>

Каналы файлов безопасны для использования несколькими параллельными потоками. Метод Channel#close close может вызываться в любое время, как указано интерфейсом Channel . Только одна операция, которая включает позицию канала или может изменить размер файла в любое время; пытается инициировать вторую такую операцию, пока первая по-прежнему выполняется, будет блокироваться до завершения первой операции. Другие операции, в частности те, которые принимают явное положение, могут продолжаться параллельно; Независимо от того, зависят ли они на самом деле от базовой реализации и поэтому не заданы.

Представление файла, предоставленного экземпляром этого класса, гарантируется согласованность с другими представлениями того же файла, предоставленного другими экземплярами в той же программе. Представление, предоставленное экземпляром этого класса, может или не совпадать с представлениями, видимыми другими параллельными программами из-за кэширования, выполняемого базовой операционной системой и задержками, вызванными протоколами сетевой файловой системы. Это верно независимо от языка, в котором написаны другие программы, и независимо от того, работают ли они на одном компьютере или на другом компьютере. Точный характер таких несоответствий зависит от системы и поэтому не определен.

Файловый канал создается путем вызова одного из методов, определенных #open open этим классом. Файловый канал также можно получить из существующего java.io.FileInputStream#getChannel FileInputStreamjava.io.FileOutputStream#getChannel FileOutputStreamобъекта или java.io.RandomAccessFile#getChannel RandomAccessFile объекта, вызвав метод этого объектаgetChannel, который возвращает файловый канал, подключенный к тому же базовому файлу. Где файловый канал получен из существующего потока или файла случайного доступа, состояние файлового канала тесно подключено к объекту, метод которого getChannel вернул канал. Изменение положения канала(явно или путем чтения или записи байтов) изменит положение файла исходного объекта и наоборот. Изменение длины файла через канал файлов приведет к изменению длины, наблюдаемой с помощью исходного объекта, и наоборот. Изменение содержимого файла путем записи байтов изменит содержимое, видное источником объекта, и наоборот.

"open-mode">

В различных точках этот класс указывает, что требуется экземпляр, открытый для чтения, "открытый для записи", или "открытый для чтения и записи". Канал, полученный с помощью java.io.FileInputStream#getChannel getChannel метода экземпляра java.io.FileInputStream , будет открыт для чтения. Канал, полученный с помощью java.io.FileOutputStream#getChannel getChannel метода экземпляра java.io.FileOutputStream , будет открыт для записи. Наконец, канал, полученный с помощью java.io.RandomAccessFile#getChannel getChannel метода экземпляраjava.io.RandomAccessFile, будет открыт для чтения, если экземпляр был создан с помощью режима и будет открыт для чтения и записи, если экземпляр был создан с режимом"r""rw".

"режим добавления">

Файловый канал, открытый для записи, может находиться в режиме добавления, например, если он был получен из потока вывода файлов, который был создан путем вызова java.io.FileOutputStream#FileOutputStream(java.io.File,boolean) FileOutputStream(File,boolean) конструктора и передачи true второго параметра. В этом режиме каждый вызов относительной операции записи сначала перемещает позицию в конец файла, а затем записывает запрошенные данные. Независимо от того, зависит ли положение и запись данных в одной атомарной операции, зависит от системы и поэтому не определена.

Добавлено в версии 1.4.

Java документации по java.nio.channels.FileChannel.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
FileChannel()

Инициализирует новый экземпляр этого класса.

FileChannel(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Имя. Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsOpen

Возвращает значение true, если этот канал открыт.

(Унаследовано от AbstractInterruptibleChannel)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
JniPeerMembers

Канал для чтения, записи, сопоставления и управления файлом.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя. Описание
Begin()

Помечает начало операции ввода-вывода, которая может блокироваться на неопределенный срок.

(Унаследовано от AbstractInterruptibleChannel)
Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Close()

Закрывает этот канал.

(Унаследовано от AbstractInterruptibleChannel)
Construct(JniObjectReference, JniObjectReferenceOptions)

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
End(Boolean)

Помечает конец операции ввода-вывода, которая может блокироваться на неопределенный срок.

(Унаследовано от AbstractInterruptibleChannel)
Equals(Object)

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
Force(Boolean)

Принудительно выполняет запись всех обновлений файла этого канала на устройство хранилища, содержащее его.

ForceAsync(Boolean)

Канал для чтения, записи, сопоставления и управления файлом.

GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
ImplCloseChannel()

Закрывает этот канал.

(Унаследовано от AbstractInterruptibleChannel)
JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
Lock()

Получает монопольную блокировку файла этого канала.

Lock(Int64, Int64, Boolean)

Получает блокировку в заданном регионе файла этого канала.

Map(FileChannel+MapMode, Int64, Int64)

Сопоставляет область файла этого канала непосредственно в память.

Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
Open(IPath, ICollection<IOpenOption>, IFileAttribute[])

Открывает или создает файл, возвращая канал файлов для доступа к файлу.

Open(IPath, IOpenOption[])

Открывает или создает файл, возвращая канал файлов для доступа к файлу.

Position()

Возвращает положение файла этого канала.

Position(Int64)

Задает положение файла этого канала.

Read(ByteBuffer, Int64)

Считывает последовательность байтов из этого канала в заданный буфер, начиная с заданной позиции файла.

Read(ByteBuffer)

Считывает последовательность байтов из этого канала в заданный буфер.

Read(ByteBuffer[], Int32, Int32)

Считывает последовательность байтов из этого канала в подсезону заданных буферов.

Read(ByteBuffer[])

Считывает последовательность байтов из этого канала в заданные буферы.

ReadAsync(ByteBuffer, Int64)

Канал для чтения, записи, сопоставления и управления файлом.

ReadAsync(ByteBuffer)

Канал для чтения, записи, сопоставления и управления файлом.

ReadAsync(ByteBuffer[], Int32, Int32)

Канал для чтения, записи, сопоставления и управления файлом.

ReadAsync(ByteBuffer[])

Канал для чтения, записи, сопоставления и управления файлом.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
Size()

Возвращает текущий размер файла этого канала.

ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
TransferFrom(IReadableByteChannel, Int64, Int64)

Передает байты в файл этого канала из заданного байтового канала.

TransferFromAsync(IReadableByteChannel, Int64, Int64)

Канал для чтения, записи, сопоставления и управления файлом.

TransferTo(Int64, Int64, IWritableByteChannel)

Передает байты из файла этого канала в заданный записываемый канал байтов.

TransferToAsync(Int64, Int64, IWritableByteChannel)

Канал для чтения, записи, сопоставления и управления файлом.

Truncate(Int64)

Усечение файла этого канала до заданного размера.

TruncateAsync(Int64)

Канал для чтения, записи, сопоставления и управления файлом.

TryLock()

Пытается получить монопольную блокировку файла этого канала.

TryLock(Int64, Int64, Boolean)

Пытается получить блокировку в заданном регионе файла этого канала.

UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Write(ByteBuffer, Int64)

Записывает последовательность байтов в этот канал из заданного буфера, начиная с заданной позиции файла.

Write(ByteBuffer)

Записывает последовательность байтов в этот канал из заданного буфера.

Write(ByteBuffer[], Int32, Int32)

Записывает последовательность байтов в этот канал из подсефференции заданных буферов.

Write(ByteBuffer[])

Записывает последовательность байтов в этот канал из заданных буферов.

WriteAsync(ByteBuffer, Int64)

Канал для чтения, записи, сопоставления и управления файлом.

WriteAsync(ByteBuffer)

Канал для чтения, записи, сопоставления и управления файлом.

WriteAsync(ByteBuffer[], Int32, Int32)

Канал для чтения, записи, сопоставления и управления файлом.

WriteAsync(ByteBuffer[])

Канал для чтения, записи, сопоставления и управления файлом.

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Канал для чтения, записи, сопоставления и управления файлом.

(Унаследовано от JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Канал для чтения, записи, сопоставления и управления файлом.

ISeekableByteChannel.Position(Int64)

Канал для чтения, записи, сопоставления и управления файлом.

ISeekableByteChannel.Truncate(Int64)

Канал для чтения, записи, сопоставления и управления файлом.

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Канал для чтения, записи, сопоставления и управления файлом.

ReadAsync(IReadableByteChannel, ByteBuffer)

Канал для чтения, записи, сопоставления и управления файлом.

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

Канал для чтения, записи, сопоставления и управления файлом.

ReadAsync(IScatteringByteChannel, ByteBuffer[])

Канал для чтения, записи, сопоставления и управления файлом.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

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

Канал для чтения, записи, сопоставления и управления файлом.

WriteAsync(IGatheringByteChannel, ByteBuffer[])

Канал для чтения, записи, сопоставления и управления файлом.

WriteAsync(IWritableByteChannel, ByteBuffer)

Канал для чтения, записи, сопоставления и управления файлом.

Применяется к