Spec-Zone.ru › OpenJDK 21

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

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, больше, чем newLength, то после возврата этого метода смещение будет равно newLength.

Если текущая длина файла, возвращаемая методом length, меньше, чем аргумент 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
Считывает знаковое целое значение восьми битов из этого файла. Этот метод считывает байт из файла, начиная с текущей позиции указателя файла. Если прочитанный байт равен b, где 0 <= b <= 255, то результат:
    (byte)(b)

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

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

readUnsignedByte

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

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

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

readShort

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

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

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

readUnsignedShort

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

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

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

readChar

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

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

Specified by:
readChar in interface DataInput
Returns:
два последующих байта этого файла, интерпретированных как символ.
Throws:
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 in interface DataInput
Returns:
четыре последующих байта этого файла, интерпретированных как целое со знаком 32-битное число.
Throws:
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 in interface DataInput
Returns:
восемь последующих байтов этого файла, интерпретированных как целое со знаком 64-битное число.
Throws:
EOFException - если этот файл достигнет конца, прежде чем будут прочитаны восемь байтов.
IOException - если произошла ошибка ввода-вывода.

readFloat

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

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

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

readDouble

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

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

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

readLine

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

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

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

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

readUTF

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

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

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

Specified by:
readUTF in interface DataInput
Returns:
строка Unicode.
Throws:
EOFException - если этот файл достигнет конца, прежде чем будут прочитаны все байты.
IOException - если произошла ошибка ввода-вывода.
UTFDataFormatException - если байты не представляют собой корректную кодировку строки Unicode в формате изменённого UTF-8.
See Also:
  • readUnsignedShort()

writeBoolean

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

writeByte

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

writeShort

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

writeChar

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

writeInt

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

writeLong

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

writeFloat

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

writeDouble

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

writeBytes

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

writeChars

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

writeUTF

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

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

Specified by:
writeUTF в интерфейсе DataOutput
Parameters:
str - строка, подлежащая записи.
Throws:
IOException - если произошла ошибка ввода-вывода.

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

Spec-Zone.ru

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