Класс 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()

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

FileChannel getChannel()

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

FileDescriptor getFD()

Возвращает непрозрачный объект дескриптора файла, связанный с этим потоком.

long getFilePointer()

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

long length()

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

int read()

Считывает байт данных из этого файла.

int read​(byte[] b)

Считывает до b.length байтов данных из этого файла в массив байтов.

int read​(byte[] b, int off, int len)

Считывает до len байтов данных из этого файла в массив байтов.

boolean readBoolean()

Считывает boolean из этого файла.

byte readByte()

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

char readChar()

Считывает символ из этого файла.

double readDouble()

Считывает double из этого файла.

float readFloat()

Считывает float из этого файла.

void readFully​(byte[] b)

Считывает b.length байтов из этого файла в массив байтов, начиная с текущего указателя файла.

void readFully​(byte[] b, int off, int len)

Считывает ровно len байтов из этого файла в массив байтов, начиная с текущего указателя файла.

int readInt()

Считывает знаковое 32-битное целое число из этого файла.

String readLine()

Считывает следующую строку текста из этого файла.

long readLong()

Считывает знаковое 64-битное целое число из этого файла.

short readShort()

Считывает знаковое 16-битное число из этого файла.

int readUnsignedByte()

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

int readUnsignedShort()

Считывает беззнаковое 16-битное число из этого файла.

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)

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

void writeBoolean​(boolean v)

Записывает boolean в файл в виде однобайтового значения.

void writeByte​(int v)

Записывает byte в файл в виде однобайтового значения.

void writeBytes​(String s)

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

void writeChar​(int v)

Записывает char в файл в виде двухбайтового значения, старший байт первым.

void writeChars​(String s)

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

void writeDouble​(double v)

Преобразует аргумент double в long с помощью метода doubleToLongBits в классе Double, а затем записывает это значение long в файл в виде восьмибайтовой величины, старший байт первым.

void writeFloat​(float v)

Преобразует аргумент float в int с помощью метода floatToIntBits в классе Float, а затем записывает это значение int в файл в виде четырехбайтовой величины, старший байт первым.

void writeInt​(int v)

Записывает int в файл в виде четырех байтов, старший байт первым.

void writeLong​(long v)

Записывает long в файл в виде восьми байтов, старший байт первым.

void writeShort​(int v)

Записывает short в файл в виде двух байтов, старший байт первым.

void writeUTF​(String str)

Записывает строку в файл, используя кодировку modified 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 - если происходит ошибка ввода-вывода.

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
Исключения:
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

Читает беззнаковое восьмибитное число из этого файла. Этот метод читает байт из этого файла, начиная с текущего указателя файла, и возвращает этот байт.

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

Указано в:
readUnsignedByte в интерфейсе DataInput
Возвращает:
следующий байт этого файла, интерпретируемый как беззнаковое восьмибитное число.
Исключения:
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 (modified UTF-8).

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

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

Указано:
readUTF в интерфейсе DataInput
Возвращает:
строку Юникод.
Выбрасывает:
EOFException - если этот файл достигнет конца до прочтения всех байтов.
IOException - если произошла ошибка ввода-вывода.
UTFDataFormatException - если байты не представляют собой допустимое кодирование Юникод в формате модифицированного 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 - если произошла ошибка ввода-вывода.

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

Spec-Zone .ru
спецификации, руководства, описания, API