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 |
Возвращает класс среды выполнения этого |
| 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 типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Канал для чтения, записи, сопоставления и управления файлом. |
| ReadAsync(IReadableByteChannel, ByteBuffer) |
Канал для чтения, записи, сопоставления и управления файлом. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[], Int32, Int32) |
Канал для чтения, записи, сопоставления и управления файлом. |
| ReadAsync(IScatteringByteChannel, ByteBuffer[]) |
Канал для чтения, записи, сопоставления и управления файлом. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |
| WriteAsync(IGatheringByteChannel, ByteBuffer[], Int32, Int32) |
Канал для чтения, записи, сопоставления и управления файлом. |
| WriteAsync(IGatheringByteChannel, ByteBuffer[]) |
Канал для чтения, записи, сопоставления и управления файлом. |
| WriteAsync(IWritableByteChannel, ByteBuffer) |
Канал для чтения, записи, сопоставления и управления файлом. |