Spec-Zone.ru › OpenJDK 24

Класс 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 независимо от машины.

Методы, объявленные в классе java.lang.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 байтов из этого файла в массив байтов, начиная с текущей позиции указателя файла. Этот метод многократно считывает данные из файла до тех пор, пока не будет прочитано необходимое количество байтов. Этот метод блокируется до тех пор, пока не будет прочитано требуемое количество байтов, не будет обнаружен конец потока или не будет брошено исключение.
Specified by:
readFully in interface DataInput
Parameters:
b - буфер, в который считываются данные.
Throws:
NullPointerException - если b равно null.
EOFException - если этот файл достигнет конца, прежде чем будут прочитаны все байты.
IOException - если произошла ошибка ввода-вывода.

readFully

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

skipBytes

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

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

Specified by:
skipBytes in interface DataInput
Parameters:
n - количество байтов, которые необходимо пропустить.
Returns:
фактическое количество пропущенных байтов.
Throws:
IOException - если произошла ошибка ввода-вывода.

write

public void write(int b) throws IOException
Записывает указанный байт в этот файл. Запись начинается с текущей позиции указателя файла.
Specified by:
write in interface DataOutput
Parameters:
b - байт, который будет записан.
Throws:
IOException - если произошла ошибка ввода-вывода.

write

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

write

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

getFilePointer

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

seek

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

length

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

setLength

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

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

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

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

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

Parameters:
newLength - Желаемая длина файла
Throws:
IOException - Если аргумент отрицательный или произошла другая ошибка ввода-вывода
Since:
1.2

close

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

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

Specified by:
close in interface AutoCloseable
Specified by:
close in interface Closeable
API Note:
Если у этого потока есть связанный канал, то этот метод закроет канал, что в свою очередь закроет этот поток. Подклассы, которые переопределяют этот метод, должны быть готовы к обработке возможного рекурсивного вызова.
Throws:
IOException - если произошла ошибка ввода-вывода.

readBoolean

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

readByte

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

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

Specified by:
readByte in interface DataInput
Returns:
следующий байт этого файла как знаковое восьмиразрядное byte.
Throws:
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
Читает следующую строку текста из этого файла. Этот метод последовательно считывает байты из файла, начиная с текущей позиции указателя файла, до тех пор, пока не достигнет символа конца строки или конца файла. Каждый байт преобразуется в символ путём взятия значения байта для нижних восьми бит символа и установки верхних восьми бит символа в ноль. Таким образом, этот метод не поддерживает полный набор символов Юникод.

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

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

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

readUTF

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

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

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

Указано в:
readUTF в интерфейсе DataInput
Возвращает:
строка Юникод.
Бросает:
EOFException - если файл достигнет конца, прежде чем будут прочитаны все байты.
IOException - если произошла ошибка ввода-вывода.
UTFDataFormatException - если байты не представляют собой правильную кодировку изменённого UTF-8 строки Юникод.
См. также:
  • readUnsignedShort()
END_OF_DOCUMENT_MARKER

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

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

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

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/RandomAccessFile.html

Spec-Zone.ru

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