Spec-Zone.ru › OpenJDK 25

Класс 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 pathname, 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()
Считывает из этого файла знаковое восьмибитное значение.
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 независимым от машины способом.

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

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

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

RandomAccessFile

public RandomAccessFile(String pathname, String mode) throws FileNotFoundException
Создает поток файла с произвольным доступом для чтения и, при необходимости, записи в файл с указанным путем. Если файл существует, он открывается; если он не существует и указан режим записи, создается новый файл. Символические ссылки автоматически перенаправляются на целевой объект ссылки. Для представления соединения с файлом создается новый объект FileDescriptor.

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

Параметры:
pathname - строка с путем, зависящим от системы
mode - режим доступа
Исключения:
IllegalArgumentException - если аргумент режима не равен ни одному из значений "r", "rw", "rws" или "rwd"
FileNotFoundException - если режим — "r", но заданная строка пути не указывает на существующий обычный файл, или если режим начинается с "rw", но заданная строка пути не указывает на существующий доступный для записи обычный файл и невозможно создать новый обычный файл по этому пути, или если при открытии либо создании файла возникает другая ошибка

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" требует записи обновлений как содержимого файла, так и его метаданных, что обычно требует как минимум одной дополнительной низкоуровневой операции ввода-вывода.

Параметры:
file - объект файла
mode - режим доступа, описанный выше
Исключения:
IllegalArgumentException - если аргумент режима не равен ни одному из значений "r", "rw", "rws" или "rwd"
FileNotFoundException - если режим — "r", но заданный объект файла не указывает на существующий обычный файл, или если режим начинается с "rw", но заданный объект файла не указывает на существующий доступный для записи обычный файл и невозможно создать новый обычный файл по этому пути, или если при открытии либо создании файла возникает другая ошибка
См. также:
  • 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

read

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

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

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

readFully

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

readFully

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 - если произошла ошибка ввода-вывода.

skipBytes

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

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

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

write

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

write

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

write

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

getFilePointer

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

seek

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

length

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

setLength

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

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

Если текущая длина файла меньше требуемой, файл будет расширен. Содержимое добавленной части файла не определено.

Если текущая длина файла равна требуемой, файл и его длина останутся без изменений.

Во всех случаях после возврата этого метода смещение файла, возвращаемое методом getFilePointer, будет равно меньшему из требуемой длины и смещения файла до вызова этого метода, даже если длина не изменилась. Иными словами, этот метод ограничивает смещение файла замкнутым интервалом [0,newLength].

Параметры:
newLength - требуемая длина файла
Исключения:
IOException - если аргумент отрицателен или произошла другая ошибка ввода-вывода
Начиная с версии:
1.2

close

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

Если с этим файлом связан канал, он также закрывается.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Примечание к API:
Если с этим потоком связан канал, данный метод закроет канал, который, в свою очередь, закроет этот поток. Подклассы, переопределяющие этот метод, должны быть готовы обработать возможный повторный вход в метод.
Исключения:
IOException - если произошла ошибка ввода-вывода.

readBoolean

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

readByte

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

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

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

readUnsignedByte

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

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

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

readShort

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

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

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

readUnsignedShort

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

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

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

readChar

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

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

Определено в:
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

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

Определено в:
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

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

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

readFloat

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

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

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

readDouble

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

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

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

readLine

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

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

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

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

readUTF

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

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

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

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

writeBoolean

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

writeByte

public final void writeByte(int v) throws IOException
Записывает byte в файл в виде однобайтового значения. Запись начинается с текущей позиции указателя файла.
Определено в:
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 — если произошла ошибка ввода-вывода.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе документации Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/java.base/java/io/RandomAccessFile.html

Spec-Zone.ru

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