Класс 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) | Создает поток файла произвольного доступа для чтения и, возможно, для записи в файл, указанный аргументом |
RandomAccessFile(String name,
String mode) | Создает поток файла произвольного доступа для чтения и, возможно, для записи в файл с указанным именем. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void | close() | Закрывает этот поток файла произвольного доступа и освобождает все системные ресурсы, связанные с потоком. |
FileChannel | getChannel() | Возвращает уникальный объект |
FileDescriptor | getFD() | Возвращает непрозрачный объект дескриптора файла, связанный с этим потоком. |
long | getFilePointer() | Возвращает текущий смещение в этом файле. |
long | length() | Возвращает длину этого файла. |
int | read() | Считывает байт данных из этого файла. |
int | read(byte[] b) | Считывает до |
int | read(byte[] b,
int off,
int len) | Считывает до |
boolean | readBoolean() | Считывает |
byte | readByte() | Считывает знаковое восьмибитное значение из этого файла. |
char | readChar() | Считывает символ из этого файла. |
double | readDouble() | Считывает |
float | readFloat() | Считывает |
void | readFully(byte[] b) | Считывает |
void | readFully(byte[] b,
int off,
int 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) | Пытается пропустить |
void | write(byte[] b) | Записывает |
void | write(byte[] b,
int off,
int len) | Записывает |
void | write(int b) | Записывает указанный байт в этот файл. |
void | writeBoolean(boolean v) | Записывает |
void | writeByte(int v) | Записывает |
void | writeBytes(String s) | Записывает строку в файл в виде последовательности байтов. |
void | writeChar(int v) | Записывает |
void | writeChars(String s) | Записывает строку в файл в виде последовательности символов. |
void | writeDouble(double v) | Преобразует аргумент double в |
void | writeFloat(float v) | Преобразует аргумент float в |
void | writeInt(int v) | Записывает |
void | writeLong(long v) | Записывает |
void | writeShort(int v) | Записывает |
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