Spec-Zone.ru › OpenJDK 17

Класс RandomAccessFile

java.lang.Object
java.io.RandomAccessFile
Все реализуемые интерфейсы:
Closeable, DataInput, DataOutput, AutoCloseable
public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable
Экземпляры этого класса поддерживают чтение и запись в файле произвольного доступа. Файл произвольного доступа ведет себя как большой массив байтов, хранящихся в файловой системе. Существует некий курсор, или индекс в предполагаемом массиве, называемый указателем файла; операции ввода читают байты, начиная с указателя файла, и продвигают указатель файла мимо прочитанных байтов. Если файл произвольного доступа создан в режиме чтения/записи, то доступны также операции вывода; операции вывода записывают байты, начиная с указателя файла, и продвигают указатель файла мимо записанных байтов. Операции вывода, которые записывают за текущим концом предполагаемого массива, приводят к расширению массива. Указатель файла может быть прочитан методом getFilePointer и установлен методом seek.

Вообще, для всех операций чтения в этом классе, если конец файла достигнут до того, как было прочитано нужное количество байтов, выбрасывается EOFException (что является своего рода IOException). Если какой-либо байт не может быть прочитан по какой-либо причине, кроме конца файла, выбрасывается IOException кроме EOFException. В частности, может быть выброшено IOException, если поток был закрыт.

С тех пор:
1.0

Краткое описание конструкторов

Конструктор Описание
RandomAccessFile(File file, String mode)
Создает поток файла произвольного доступа для чтения из файла, и, необязательно, для записи в него, указанный аргументом File.
RandomAccessFile(String name, String mode)
Создает поток файла произвольного доступа для чтения из, и, необязательно, для записи в, файл с указанным именем.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает этот поток файла произвольного доступа и освобождает любые системные ресурсы, связанные с потоком.
final FileChannel getChannel()
Возвращает уникальный объект FileChannel, связанный с этим файлом.
final FileDescriptor getFD()
Возвращает объект-оборачивающий файловый дескриптор, связанный с этим потоком.
long getFilePointer()
Возвращает текущую позицию в этом файле.
long length()
Возвращает длину этого файла.
int read()
Читает байт данных из этого файла.
int read(byte[] b)
Читает до b.length байтов данных из этого файла в массив байтов.
int read(byte[] b, int off, int len)
Читает до len байтов данных из этого файла в массив байтов.
final boolean readBoolean()
Читает boolean из этого файла.
final byte readByte()
Читает знаковое целое число со знаком 8 бит из этого файла.
final char readChar()
Читает символ из этого файла.
final double readDouble()
Читает double из этого файла.
final float readFloat()
Читает float из этого файла.
final void readFully(byte[] b)
Читает b.length байтов из этого файла в массив байтов, начиная с текущего указателя файла.
final void readFully(byte[] b, int off, int len)
Читает ровно len байтов из этого файла в массив байтов, начиная с текущего указателя файла.
final int readInt()
Читает знаковое 32-битное целое число из этого файла.
final String readLine()
Читает следующую строку текста из этого файла.
final long readLong()
Читает знаковое 64-битное целое число из этого файла.
final short readShort()
Читает знаковое 16-битное число из этого файла.
final int readUnsignedByte()
Читает беззнаковое восьмибитное число из этого файла.
final int readUnsignedShort()
Читает беззнаковое 16-битное число из этого файла.
final String readUTF()
Читает строку из этого файла.
void seek(long pos)
Устанавливает смещение указателя файла, измеренное с начала этого файла, в котором произойдет следующее чтение или запись.
void setLength(long newLength)
Устанавливает длину этого файла.
int skipBytes(int n)
Пытается пропустить n байтов входных данных, удаляя пропущенные байты.
void write(byte[] b)
Записывает b.length байтов из указанного массива байтов в этот файл, начиная с текущего указателя файла.
void write(byte[] b, int off, int len)
Записывает len байтов из указанного массива байтов, начиная со смещения off, в этот файл.
void write(int b)
Записывает указанный байт в этот файл.
final void writeBoolean(boolean v)
Записывает boolean в файл в виде значения одного байта.
final void writeByte(int v)
Записывает byte в файл в виде значения одного байта.
final void writeBytes(String s)
Записывает строку в файл как последовательность байтов.
final void writeChar(int v)
Записывает char в файл в виде значения двух байтов, старший байт первым.
final void writeChars(String s)
Записывает строку в файл как последовательность символов.
final void writeDouble(double v)
Преобразует аргумент типа double в long с помощью метода doubleToLongBits в классе Double, а затем записывает это значение long в файл как восьмибайтовое значение, старший байт первым.
final void writeFloat(float v)
Преобразует аргумент типа float в int с помощью метода floatToIntBits в классе Float, а затем записывает это значение int в файл как четырёхбайтовое значение, старший байт первым.
final void writeInt(int v)
Записывает int в файл в виде четырёх байтов, старший байт первым.
final void writeLong(long v)
Записывает long в файл в виде восьми байтов, старший байт первым.
final void writeShort(int v)
Записывает short в файл в виде двух байтов, старший байт первым.
final void writeUTF(String str)
Записывает строку в файл, используя кодировку изменённый UTF-8, независимо от машины.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

RandomAccessFile

public RandomAccessFile(String name, String mode) throws FileNotFoundException
Создаёт поток для произвольного доступа к файлу для чтения и, необязательно, для записи, по заданному имени. Создаётся новый объект FileDescriptor для представления соединения с файлом.

Аргумент mode определяет режим доступа к файлу. Допустимые значения и их смыслы указаны для конструктора RandomAccessFile(File,String).

Если установлен менеджер безопасности, вызывается его метод checkRead с аргументом name для проверки разрешения на чтение файла. Если режим позволяет запись, также вызывается метод менеджера безопасности checkWrite с аргументом name для проверки разрешения на запись файла.

Параметры:
name - имя файла (зависит от системы)
mode - режим доступа режим
Исключения:
IllegalArgumentException - если аргумент режима не равен одному из "r", "rw", "rws", или "rwd"
FileNotFoundException - если режим — "r", но заданная строка не обозначает существующий обычный файл, или если режим начинается с "rw", но заданная строка не обозначает существующий, доступный для записи обычный файл и новый обычный файл с таким именем не может быть создан, или если возникает другая ошибка при открытии или создании файла
SecurityException - если менеджер безопасности существует и его метод checkRead запрещает чтение файла или режим "rw", и метод менеджера безопасности checkWrite запрещает запись в файл
См. также:
  • SecurityException
  • SecurityManager.checkRead(java.lang.String)
  • SecurityManager.checkWrite(java.lang.String)

RandomAccessFile

public RandomAccessFile(File file, String mode) throws FileNotFoundException
Создаёт поток для произвольного доступа к файлу, указанному в аргументе File, для чтения и, необязательно, для записи. Создаётся новый объект FileDescriptor для представления соединения с этим файлом.

Аргумент mode определяет режим доступа к файлу.

Допустимые значения режимов доступа и их смыслы
Значение Смысл
"r" Открытие только для чтения. Вызов любого из методов write результирующего объекта приведёт к исключению IOException.
"rw" Открытие для чтения и записи. Если файл не существует, будет предпринята попытка его создания.
"rws" Открытие для чтения и записи, как с "rw", и также требует, чтобы каждое обновление содержимого или метаданных файла синхронно записывалось на подлежащее устройство хранения.
"rwd" Открытие для чтения и записи, как с "rw", и также требует, чтобы каждое обновление содержимого файла синхронно записывалось на подлежащее устройство хранения.
Режимы "rws" и "rwd" работают аналогично методу force(boolean) класса FileChannel, передавая аргументы true и false соответственно, за исключением того, что они всегда применяются ко всем операциям ввода-вывода и, следовательно, часто более эффективны. Если файл находится на локальном устройстве хранения, то по возвращении вызова метода этого класса гарантируется, что все изменения, внесённые в файл данным вызовом, были записаны на это устройство. Это полезно для обеспечения того, что критическая информация не будет потеряна в случае сбоя системы. Если файл не находится на локальном устройстве, такая гарантия не предоставляется.

Режим "rwd" может использоваться для сокращения числа операций ввода-вывода. Использование "rwd" требует записи только обновлений содержимого файла в хранилище; использование "rws" требует записи обновлений как содержимого файла, так и его метаданных, что обычно требует как минимум ещё одной операции ввода-вывода низкого уровня.

Если установлен менеджер безопасности, вызывается его метод checkRead с путём к файлу аргумента file в качестве аргумента для проверки разрешения на чтение файла. Если режим позволяет запись, также вызывается метод менеджера безопасности checkWrite с путём файла для проверки разрешения на запись файла.

Параметры:
file - объект файла
mode - режим доступа, описанный выше
Исключения:
IllegalArgumentException - если аргумент режима не равен одному из "r", "rw", "rws", или "rwd"
FileNotFoundException - если режим "r", но указанный объект файла не обозначает существующий обычный файл, или если режим начинается с "rw", но указанный объект файла не обозначает существующий обычный файл, доступный для записи, и новый обычный файл с таким именем не может быть создан, или если при открытии или создании файла произошла какая-либо ошибка
SecurityException - если менеджер безопасности существует и его метод checkRead запрещает чтение файла или режим "rw", и метод менеджера безопасности checkWrite запрещает запись в файл
См. также:
  • SecurityManager.checkRead(java.lang.String)
  • SecurityManager.checkWrite(java.lang.String)
  • FileChannel.force(boolean)

Подробное описание методов

getFD

public final FileDescriptor getFD() throws IOException
Возвращает объект невидимого дескриптора файла, связанный с этим потоком.
Возвращает:
объект дескриптора файла, связанный с этим потоком.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • FileDescriptor

getChannel

public final FileChannel getChannel()
Возвращает уникальный объект FileChannel, связанный с этим файлом.

Позиция position возвращённого канала всегда равна смещению указателя файла этого объекта, возвращаемому методом getFilePointer. Изменение смещения указателя файла этого объекта, как явно, так и путём чтения или записи байтов, изменит позицию канала, и наоборот. Изменение длины файла с помощью этого объекта изменит длину, видимую через канал файла, и наоборот.

Возвращает:
канал файла, связанный с этим файлом
С тех пор:
1.4

read

public int read() throws IOException
Читает один байт данных из этого файла. Байт возвращается в виде целого числа в диапазоне от 0 до 255 (0x00-0x0ff). Этот метод блокируется, если данные ещё недоступны.

Хотя RandomAccessFile не является подклассом InputStream, этот метод ведёт себя точно так же, как метод InputStream.read() класса InputStream.

Возвращает:
следующий байт данных или -1, если достигнут конец файла.
Исключения:
IOException - если произошла ошибка ввода-вывода. Не выбрасывается, если достигнут конец файла.

read

public int read(byte[] b, int off, int len) throws IOException
Читает до len байт данных из этого файла в массив байтов. Этот метод блокируется, пока как минимум один байт данных недоступен.

Хотя RandomAccessFile не является подклассом InputStream, этот метод ведёт себя точно так же, как метод InputStream.read(byte[], int, int) класса InputStream.

Параметры:
b - буфер, в который читаются данные.
off - начальный смещение в массиве b для записи данных.
len - максимальное количество считанных байт.
Возвращает:
общее количество считанных байт в буфер или -1, если больше данных нет, так как достигнут конец файла.
Исключения:
IOException - если первый байт не может быть прочитан по любой причине, кроме конца файла, или если файл произвольного доступа закрыт, или если произошла другая ошибка ввода-вывода.
NullPointerException - если b равно null.
IndexOutOfBoundsException - если off отрицательно, len отрицательно или len больше b.length - off

чтение

public int read(byte[] b) throws IOException
Считывает до b.length байтов данных из этого файла в массив байтов. Этот метод блокируется до тех пор, пока не станет доступным хотя бы один байт ввода.

Хотя RandomAccessFile не является подклассом InputStream, этот метод ведет себя точно так же, как метод InputStream.read(byte[]) объекта InputStream.

Параметры:
b - буфер, в который будут считываться данные.
Возвращает:
общее количество считанных байтов, или -1, если больше данных нет, потому что достигнут конец файла.
Исключения:
IOException - Если первый байт не может быть прочитан по какой-либо причине, кроме конца файла, или если файл случайного доступа закрыт, или если произошла другая ошибка ввода-вывода.
NullPointerException - Если b равно null.

чтениеПолностью

public final void readFully(byte[] b) throws IOException
Считывает b.length байтов из этого файла в массив байтов, начиная с текущей позиции указателя файла. Этот метод многократно считывает из файла, пока не будет прочитано нужное количество байтов. Этот метод блокируется до тех пор, пока не будет прочитано нужное количество байтов, не будет обнаружен конец потока или не будет брошено исключение.
Определено в:
readFully в интерфейсе DataInput
Параметры:
b - буфер, в который будут считываться данные.
Исключения:
NullPointerException - если b равно null.
EOFException - если файл достигнет конца, прежде чем будут прочитаны все байты.
IOException - если произошла ошибка ввода-вывода.

чтениеПолностью

public final void readFully(byte[] b, int off, int len) throws IOException
Считывает ровно len байтов из этого файла в массив байтов, начиная с текущей позиции указателя файла. Этот метод многократно считывает из файла, пока не будет прочитано нужное количество байтов. Этот метод блокируется до тех пор, пока не будет прочитано нужное количество байтов, не будет обнаружен конец потока или не будет брошено исключение.
Определено в:
readFully в интерфейсе DataInput
Параметры:
b - буфер, в который будут считываться данные.
off - начальный смещение в массиве данных b.
len - количество байтов для считывания.
Исключения:
NullPointerException - если b равно null.
IndexOutOfBoundsException - если off отрицательно, len отрицательно или len больше, чем b.length - off.
EOFException - если файл достигнет конца, прежде чем будут прочитаны все байты.
IOException - если произошла ошибка ввода-вывода.

пропускБайтов

public int skipBytes(int n) throws IOException
Попытка пропустить n байтов входных данных, отбрасывая пропущенные байты.

Этот метод может пропустить меньшее количество байтов, возможно, ноль. Это может произойти по различным причинам; достижение конца файла до того, как будет пропущено n байтов, — лишь один из вариантов. Этот метод никогда не выбрасывает EOFException. Возвращается фактическое количество пропущенных байтов. Если n отрицательно, байты не пропускаются.

Определено в:
skipBytes в интерфейсе DataInput
Параметры:
n - количество байтов для пропуска.
Возвращает:
фактическое количество пропущенных байтов.
Исключения:
IOException - если произошла ошибка ввода-вывода.

запись

public void write(int b) throws IOException
Записывает указанный байт в этот файл. Запись начинается с текущей позиции указателя файла.
Определено в:
write в интерфейсе DataOutput
Параметры:
b - байт для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

запись

public void write(byte[] b) throws IOException
Записывает b.length байтов из указанного массива байтов в этот файл, начиная с текущей позиции указателя файла.
Определено в:
write в интерфейсе DataOutput
Параметры:
b - данные.
Исключения:
IOException - если произошла ошибка ввода-вывода.

запись

public void write(byte[] b, int off, int len) throws IOException
Записывает len байтов из указанного массива байтов, начиная со смещения off в этот файл.
Определено в:
write в интерфейсе DataOutput
Параметры:
b - данные.
off - начальное смещение в данных.
len - количество байтов для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

получитьУказательФайла

public long getFilePointer() throws IOException
Возвращает текущее смещение в этом файле.
Возвращает:
смещение от начала файла в байтах, в котором произойдет следующий считывание или запись.
Исключения:
IOException - если произошла ошибка ввода-вывода.

переместить

public void seek(long pos) throws IOException
Устанавливает смещение указателя файла, измеренное от начала этого файла, в котором произойдет следующее считывание или запись. Смещение может быть установлено за пределами конца файла. Установка смещения за пределами конца файла не изменяет длину файла. Длина файла изменится только при записи после того, как смещение было установлено за пределами конца файла.
Параметры:
pos - позиция смещения, измеренная в байтах от начала файла, в которой нужно установить указатель файла.
Исключения:
IOException - если pos меньше 0 или если произошла ошибка ввода-вывода.

длина

public long length() throws IOException
Возвращает длину этого файла.
Возвращает:
длина этого файла в байтах.
Исключения:
IOException - если произошла ошибка ввода-вывода.

установитьДлину

public void setLength(long newLength) throws IOException
Устанавливает длину этого файла.

Если текущая длина файла, возвращаемая методом length, больше, чем аргумент newLength, то файл будет укорочен. В этом случае, если смещение файла, возвращаемое методом getFilePointer, больше, чем newLength, то после возврата этого метода смещение будет равно newLength.

Если текущая длина файла, возвращаемая методом length, меньше, чем аргумент newLength, то файл будет расширен. В этом случае содержимое расширенной части файла не определено.

Параметры:
newLength - Желаемая длина файла
Исключения:
IOException - Если произошла ошибка ввода-вывода
С тех пор как:
1.2

закрыть

public void close() throws IOException
Закрывает поток файла случайного доступа и высвобождает все системные ресурсы, связанные с потоком. Закрытый файл случайного доступа не может выполнять операции ввода-вывода и не может быть повторно открыт.

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

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Исключения:
IOException - если произошла ошибка ввода-вывода.

считатьБулево

public final boolean readBoolean() throws IOException
Считывает boolean из этого файла. Этот метод считывает один байт из файла, начиная с текущей позиции указателя файла. Значение 0 представляет false. Любое другое значение представляет true. Этот метод блокируется до тех пор, пока байт не будет прочитан, не будет обнаружен конец потока или не будет брошено исключение.
Определено в:
readBoolean в интерфейсе DataInput
Возвращает:
прочитанное значение boolean.
Исключения:
EOFException - если этот файл достиг конца.
IOException - если произошла ошибка ввода-вывода.

считатьБайт

public final byte readByte() throws IOException
Считывает знаковое значение с восемью битами из этого файла. Этот метод считывает байт из файла, начиная с текущей позиции указателя файла. Если прочитанный байт равен b, где 0 <= b <= 255, то результат:
     (byte)(b)
 

Этот метод блокируется до тех пор, пока байт не будет прочитан, не будет обнаружен конец потока или не будет брошено исключение.

Определено в:
readByte в интерфейсе DataInput
Возвращает:
следующий байт этого файла как знаковое целое восьмибитное byte.
Исключения:
EOFException - если этот файл достиг конца.
IOException - если произошла ошибка ввода-вывода.

считатьБезЗнаковоеБайт

public final int readUnsignedByte() throws IOException
Считывает целое без знака с восемью битами из этого файла. Этот метод считывает байт из этого файла, начиная с текущей позиции указателя файла, и возвращает этот байт.

Этот метод блокируется до тех пор, пока байт не будет прочитан, не будет обнаружен конец потока или не будет брошено исключение.

Определено в:
readUnsignedByte в интерфейсе DataInput
Возвращает:
следующий байт этого файла, интерпретируемый как целое без знака с восемью битами.
Исключения:
EOFException - если этот файл достиг конца.
IOException - если произошла ошибка ввода-вывода.
END_OF_DOCUMENT_MARKER

readShort

public final short readShort() throws IOException
Считывает целое число со знаком 16 бит из этого файла. Метод считывает два байта из этого файла, начиная с текущей позиции указателя файла. Если два прочитанных байта в порядке следования являются b1 и b2, где каждое из двух значений находится в диапазоне от 0 до 255 включительно, то результат равен:
     (short)((b1 << 8) | b2)
 

Этот метод блокируется до тех пор, пока не будут прочитаны два байта, не будет обнаружен конец потока или не будет брошено исключение.

Specified by:
readShort в интерфейсе DataInput
Возвращает:
следующие два байта этого файла, интерпретированные как целое число со знаком 16 бит.
Исключение:
EOFException - если этот файл достигает конца перед чтением двух байтов.
IOException - если произошла ошибка ввода-вывода.

readUnsignedShort

public final int readUnsignedShort() throws IOException
Считывает целое число без знака 16 бит из этого файла. Этот метод считывает два байта из файла, начиная с текущей позиции указателя. Если прочитанные байты в порядке следования являются b1 и b2, где 0 <= b1, b2 <= 255, то результат равен:
     (b1 << 8) | b2
 

Этот метод блокируется до тех пор, пока не будут прочитаны два байта, не будет обнаружен конец потока или не будет брошено исключение.

Specified by:
readUnsignedShort в интерфейсе DataInput
Возвращает:
следующие два байта этого файла, интерпретированные как целое без знака 16 бит.
Исключение:
EOFException - если этот файл достигает конца перед чтением двух байтов.
IOException - если произошла ошибка ввода-вывода.

readChar

public final char readChar() throws IOException
Считывает символ из этого файла. Этот метод считывает два байта из файла, начиная с текущей позиции указателя. Если прочитанные байты в порядке следования являются b1 и b2, где 0 <= b1, b2 <= 255, то результат равен:
     (char)((b1 << 8) | b2)
 

Этот метод блокируется до тех пор, пока не будут прочитаны два байта, не будет обнаружен конец потока или не будет брошено исключение.

Specified by:
readChar в интерфейсе DataInput
Возвращает:
следующие два байта этого файла, интерпретированные как char.
Исключение:
EOFException - если этот файл достигает конца перед чтением двух байтов.
IOException - если произошла ошибка ввода-вывода.

readInt

public final int readInt() throws IOException
Считывает целое число со знаком 32 бит из этого файла. Этот метод считывает 4 байта из файла, начиная с текущей позиции указателя. Если прочитанные байты в порядке следования являются b1, b2, b3, и b4, где 0 <= b1, b2, b3, b4 <= 255, то результат равен:
     (b1 << 24) | (b2 << 16) + (b3 << 8) + b4
 

Этот метод блокируется до тех пор, пока не будут прочитаны четыре байта, не будет обнаружен конец потока или не будет брошено исключение.

Specified by:
readInt в интерфейсе DataInput
Возвращает:
следующие четыре байта этого файла, интерпретированные как int.
Исключение:
EOFException - если этот файл достигает конца перед чтением четырёх байтов.
IOException - если произошла ошибка ввода-вывода.

readLong

public final long readLong() throws IOException
Считывает целое число со знаком 64 бит из этого файла. Этот метод считывает восемь байтов из файла, начиная с текущей позиции указателя. Если прочитанные байты в порядке следования являются b1, b2, b3, b4, b5, b6, b7, и b8, где:
     0 <= b1, b2, b3, b4, b5, b6, b7, b8 <=255,
 

то результат равен:

     ((long)b1 << 56) + ((long)b2 << 48)
     + ((long)b3 << 40) + ((long)b4 << 32)
     + ((long)b5 << 24) + ((long)b6 << 16)
     + ((long)b7 << 8) + b8
 

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

Specified by:
readLong в интерфейсе DataInput
Возвращает:
следующие восемь байтов этого файла, интерпретированные как long.
Исключение:
EOFException - если этот файл достигает конца перед чтением восьми байтов.
IOException - если произошла ошибка ввода-вывода.

readFloat

public final float readFloat() throws IOException
Считывает float из этого файла. Этот метод считывает значение int, начиная с текущей позиции указателя файла, как если бы это делал метод readInt, а затем преобразует это значение int в float с помощью метода intBitsToFloat в классе Float.

Этот метод блокируется до тех пор, пока не будут прочитаны четыре байта, не будет обнаружен конец потока или не будет брошено исключение.

Specified by:
readFloat в интерфейсе DataInput
Возвращает:
следующие четыре байта этого файла, интерпретированные как float.
Исключение:
EOFException - если этот файл достигает конца перед чтением четырёх байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • readInt()
  • Float.intBitsToFloat(int)

readDouble

public final double readDouble() throws IOException
Считывает double из этого файла. Этот метод считывает значение long, начиная с текущей позиции указателя файла, как если бы это делал метод readLong, а затем преобразует это значение long в double с помощью метода longBitsToDouble в классе Double.

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

Specified by:
readDouble в интерфейсе DataInput
Возвращает:
следующие восемь байтов этого файла, интерпретированные как double.
Исключение:
EOFException - если этот файл достигает конца перед чтением восьми байтов.
IOException - если произошла ошибка ввода-вывода.
См. также:
  • readLong()
  • Double.longBitsToDouble(long)

readLine

public final String readLine() throws IOException
Считывает следующую строку текста из этого файла. Этот метод последовательно считывает байты из файла, начиная с текущей позиции указателя, до тех пор, пока не встретит символ конца строки или конец файла. Каждый байт преобразуется в символ, взяв значение байта для младших восьми бит символа и установив старшие восемь битов символа в ноль. Таким образом, этот метод не поддерживает весь набор символов Unicode.

Строка текста завершается символом возврата каретки ('\r'), символом новой строки ('\n'), символом возврата каретки, немедленно за которым следует символ новой строки, или концом файла. Символы конца строки отбрасываются и не включаются в состав возвращаемой строки.

Этот метод блокируется до тех пор, пока не будет прочитан символ новой строки, не будут прочитаны символ возврата каретки и байт, следующий за ним (для проверки, является ли это символом новой строки), не будет достигнут конец файла или не будет брошено исключение.

Specified by:
readLine в интерфейсе DataInput
Возвращает:
следующую строку текста из этого файла или null, если конец файла обнаружен до чтения хотя бы одного байта.
Исключение:
IOException - если произошла ошибка ввода-вывода.

readUTF

public final String readUTF() throws IOException
Считывает строку из этого файла. Строка была закодирована в формате изменённого UTF-8.

Первые два байта считываются, начиная с текущей позиции указателя файла, как если бы это делал метод readUnsignedShort. Это значение даёт количество следующих байтов, которые находятся в закодированной строке, а не длину результирующей строки. Затем последующие байты интерпретируются как байты, кодирующие символы в формате изменённого UTF-8, и преобразуются в символы.

Этот метод блокируется до тех пор, пока не будут прочитаны все байты, не будет обнаружен конец потока или не будет брошено исключение.

Specified by:
readUTF в интерфейсе DataInput
Возвращает:
строку Unicode.
Исключение:
EOFException - если этот файл достигает конца перед чтением всех байтов.
IOException - если произошла ошибка ввода-вывода.
UTFDataFormatException - если байты не представляют собой допустимую кодировку изменённого UTF-8 строки Unicode.
См. также:
  • readUnsignedShort()

writeBoolean

public final void writeBoolean(boolean v) throws IOException
Записывает boolean в файл в виде значения одного байта. Значение true записывается как значение (byte)1; значение false записывается как значение (byte)0. Запись начинается с текущей позиции указателя файла.
Specified by:
writeBoolean в интерфейсе DataOutput
Параметры:
v - значение boolean для записи.
Исключение:
IOException - если произошла ошибка ввода-вывода.

writeByte

public final void writeByte(int v) throws IOException
Записывает byte в файл в виде значения одного байта. Запись начинается с текущей позиции указателя файла.
Specified by:
writeByte в интерфейсе DataOutput
Параметры:
v - значение byte для записи.
Исключение:
IOException - если произошла ошибка ввода-вывода.

writeShort

public final void writeShort(int v) throws IOException
Записывает short в файл в виде двух байтов, старший байт первым. Запись начинается с текущей позиции указателя файла.
Определено в:
writeShort в интерфейсе DataOutput
Параметры:
v - short для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeChar

public final void writeChar(int v) throws IOException
Записывает char в файл в виде двухбайтового значения, старший байт первым. Запись начинается с текущей позиции указателя файла.
Определено в:
writeChar в интерфейсе DataOutput
Параметры:
v - значение char для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeInt

public final void writeInt(int v) throws IOException
Записывает int в файл в виде четырёх байтов, старший байт первым. Запись начинается с текущей позиции указателя файла.
Определено в:
writeInt в интерфейсе DataOutput
Параметры:
v - int для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeLong

public final void writeLong(long v) throws IOException
Записывает long в файл в виде восьми байтов, старший байт первым. Запись начинается с текущей позиции указателя файла.
Определено в:
writeLong в интерфейсе DataOutput
Параметры:
v - long для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeFloat

public final void writeFloat(float v) throws IOException
Преобразует аргумент float в int с помощью метода floatToIntBits в классе Float, а затем записывает это значение int в файл в виде четырёхбайтового значения, старший байт первым. Запись начинается с текущей позиции указателя файла.
Определено в:
writeFloat в интерфейсе DataOutput
Параметры:
v - значение float для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • Float.floatToIntBits(float)

writeDouble

public final void writeDouble(double v) throws IOException
Преобразует аргумент double в long с помощью метода doubleToLongBits в классе Double, а затем записывает это значение long в файл в виде восьмибайтового значения, старший байт первым. Запись начинается с текущей позиции указателя файла.
Определено в:
writeDouble в интерфейсе DataOutput
Параметры:
v - значение double для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • Double.doubleToLongBits(double)

writeBytes

public final void writeBytes(String s) throws IOException
Записывает строку в файл в виде последовательности байтов. Каждый символ строки записывается последовательно, отбрасывая его старшие восемь бит. Запись начинается с текущей позиции указателя файла.
Определено в:
writeBytes в интерфейсе DataOutput
Параметры:
s - строка байтов для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.

writeChars

public final void writeChars(String s) throws IOException
Записывает строку в файл как последовательность символов. Каждый символ записывается в поток данных вывода, как если бы методом writeChar. Запись начинается с текущей позиции указателя файла.
Определено в:
writeChars в интерфейсе DataOutput
Параметры:
s - значение String для записи.
Исключения:
IOException - если произошла ошибка ввода-вывода.
См. также:
  • writeChar(int)

writeUTF

public final void writeUTF(String str) throws IOException
Записывает строку в файл, используя кодировку модифицированный UTF-8 для машинонезависимого представления.

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

Определено в:
writeUTF в интерфейсе DataOutput
Параметры:
str - записываемая строка.
Исключения:
IOException - если произошла ошибка ввода-вывода.

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/io/RandomAccessFile.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API