Класс 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, если поток был закрыт.
- С:
- JDK1.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) Преобразует двойное значение аргумента в |
void |
writeFloat(float v) Преобразует значение аргумента с плавающей точкой в |
void |
writeInt(int v) Записывает |
void |
writeLong(long v) Записывает |
void |
writeShort(int v) Записывает |
void |
writeUTF(String str) Записывает строку в файл с использованием кодировки модифицированного UTF-8 независимым от машины способом. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
RandomAccessFile
public RandomAccessFile(String name,
String mode)
throws FileNotFoundException Создаёт поток для произвольного доступа к файлу для чтения, и необязательно для записи, с указанным именем. Новый объект FileDescriptor создаётся для представления соединения с файлом.
Аргумент mode определяет режим доступа, в котором файл будет открыт. Разрешённые значения и их значения указаны для конструктора RandomAccessFile(File,String).
Если существует менеджер безопасности, его метод checkRead вызывается с аргументом name для проверки разрешения на чтение файла. Если режим позволяет запись, метод менеджера безопасности checkWrite также вызывается с аргументом name для проверки разрешения на запись в файл.
- Параметры:
-
name- имя файла (зависит от системы) -
mode- режим доступа режима - Исключения:
-
IllegalArgumentException- если аргумент mode не равен одному из"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- если аргумент mode не равен одному из"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- буфер, в который считываются данные. - Исключения:
-
EOFException- если файл достиг конца, прежде чем были прочитаны все байты. -
IOException- если произошла ошибка ввода-вывода.
readFully
public final void readFully(byte[] b,
int off,
int len)
throws IOException Считывает ровно len байт из этого файла в массив байтов, начиная с текущей позиции указателя файла. Этот метод многократно считывает данные из файла, пока не будет прочитано нужное количество байтов. Этот метод блокируется, пока не будет прочитано требуемое количество байтов, не будет обнаружен конец потока или не будет выброшено исключение.
- Указано в:
-
readFullyв интерфейсеDataInput - Параметры:
-
b- буфер, в который считываются данные. -
off- начальный смещение данных. -
len- количество байтов для чтения. - Исключения:
-
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в интерфейсеCloseable - Указано в:
-
closeв интерфейсеAutoCloseable - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
readBoolean
public final boolean readBoolean()
throws IOException Считывает boolean из этого файла. Этот метод считывает один байт из файла, начиная с текущей позиции указателя файла. Значение 0 представляет false. Любое другое значение представляет true. Этот метод блокируется, пока байт не будет прочитан, не будет обнаружен конец потока или не будет выброшено исключение.
- Указано в:
-
readBooleanв интерфейсеDataInput - Возвращает:
- прочитанное значение
boolean. - Исключения:
-
EOFException- если файл достиг конца. -
IOException- если произошла ошибка ввода-вывода.
readByte
public final byte readByte()
throws IOException Считывает знаковое значение в 8 бит из этого файла. Этот метод считывает байт из файла, начиная с текущей позиции указателя файла. Если прочитанный байт равен b, где 0 <= b <= 255, то результат равен:
(byte)(b)
Этот метод блокируется, пока байт не будет прочитан, не будет обнаружен конец потока или не будет выброшено исключение.
- Указано в:
-
readByteв интерфейсеDataInput - Возвращает:
- следующий байт этого файла как знаковое восьмибитное
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 Считывает следующую строку текста из этого файла. Этот метод последовательно считывает байты из файла, начиная с текущей позиции указателя файла, до тех пор, пока не достигнет символа конца строки или конца файла. Каждый байт преобразуется в символ путём взятия значения байта для младших восьми битов символа и установки старших восьми битов символа в ноль. Таким образом, этот метод не поддерживает полный набор символов Юникод.
Строка текста завершается символом возврата каретки ('\r'), символом новой строки ('\n'), символом возврата каретки, немедленно за которым следует символ новой строки, или концом файла. Символы конца строки игнорируются и не включаются в состав возвращаемой строки.
Этот метод блокируется до тех пор, пока не будет прочитан символ новой строки, символы возврата каретки и байта, следующего за ним (чтобы увидеть, является ли это новой строкой), не будет достигнут конец файла или не будет выброшено исключение.
- Указано:
-
readLineв интерфейсеDataInput - Возвращает:
- следующую строку текста из этого файла или null, если конец файла встречен до того, как был прочитан хотя бы один байт.
- Выбрасывает:
-
IOException- если произошла ошибка ввода-вывода.
readUTF
public final String readUTF()
throws IOException Считывает строку из этого файла. Строка закодирована в формате изменённого UTF-8.
Сначала считываются два байта, начиная с текущей позиции указателя файла, как если бы это делал readUnsignedShort. Это значение указывает количество следующих байтов, которые находятся в закодированной строке, а не длину результирующей строки. Затем следующие байты интерпретируются как байты, кодирующие символы в формате изменённого UTF-8, и преобразуются в символы.
Этот метод блокируется до тех пор, пока не будут прочитаны все байты, не будет обнаружен конец потока или не будет выброшено исключение.
- Указано:
-
readUTFв интерфейсеDataInput - Возвращает:
- строку Юникод.
- Выбрасывает:
-
EOFException- если этот файл достигает конца перед чтением всех байтов. -
IOException- если байты не представляют собой допустимую кодировку изменённого UTF-8 для строки Юникод. -
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.