Spec-Zone .ru
спецификации, руководства, описания, API
|
public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable
getFilePointer
метод и набор seek
метод. Это обычно верно для всех подпрограмм чтения в этом class, что, если конец файла достигается прежде, чем требуемое число байтов было считано, EOFException
(который является своего рода IOException
) бросается. Если какой-либо байт не может быть считан ни по какой причине кроме конца файла, IOException
кроме EOFException
бросается. В частности IOException
может быть брошен, если поток был закрыт.
Конструктор и Описание |
---|
RandomAccessFile(File file, String mode)
Создает поток файла произвольного доступа, чтобы читать из, и дополнительно записать в, файл, определенный
File параметр. |
RandomAccessFile(String name, String mode)
Создает поток файла произвольного доступа, чтобы читать из, и дополнительно записать в, файл с указанным именем.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
close()
Завершения этот поток файла произвольного доступа и выпуски любые системные ресурсы связались с потоком.
|
FileChannel |
getChannel()
Возвращает уникальное
FileChannel объект связался с этим файлом. |
FileDescriptor |
getFD()
Возвращает непрозрачный объект дескриптора файла, связанный с этим потоком.
|
long |
getFilePointer()
Возвращает текущее смещение в этом файле.
|
long |
length()
Возвращает длину этого файла.
|
int |
read()
Читает байт данных от этого файла.
|
int |
read(byte[] b)
Чтения до
b.length байты данных от этого файла в массив байтов. |
int |
read(byte[] b, int off, int len)
Чтения до
len байты данных от этого файла в массив байтов. |
boolean |
readBoolean()
Чтения a
boolean от этого файла. |
byte |
readByte()
Читает подписанное восьмиразрядное значение из этого файла.
|
char |
readChar()
Читает символ из этого файла.
|
double |
readDouble()
Чтения a
double от этого файла. |
float |
readFloat()
Чтения a
float от этого файла. |
void |
readFully(byte[] b)
Чтения
b.length байты от этого файла в байтовый массив, запускающийся в текущем указателе файла. |
void |
readFully(byte[] b, int off, int len)
Чтения точно
len байты от этого файла в байтовый массив, запускающийся в текущем указателе файла. |
int |
readInt()
Читает подписанное 32-разрядное целое число из этого файла.
|
Строка |
readLine()
Читает следующую строку текста от этого файла.
|
long |
readLong()
Читает подписанное 64-разрядное целое число из этого файла.
|
short |
readShort()
Читает подписанное 16-разрядное число из этого файла.
|
int |
readUnsignedByte()
Читает восьмиразрядное число без знака из этого файла.
|
int |
readUnsignedShort()
Читает 16-разрядное число без знака из этого файла.
|
Строка |
readUTF()
Чтения в строке от этого файла.
|
void |
seek(long pos)
Устанавливает смещение указателя файла, измеренное с начала этого файла, в котором происходят следующее чтение или запись.
|
void |
setLength(long newLength)
Устанавливает длину этого файла.
|
int |
skipBytes(int n)
Попытки перескочить
n байты ввода, отбрасывающего пропущенные байты. |
void |
write(byte[] b)
Записи
b.length байты от указанного байтового массива до этого файла, запускающегося в текущем указателе файла. |
void |
write(byte[] b, int off, int len)
Записи
len байты от указанного байтового массива, запускающегося при смещении off к этому файлу. |
void |
write(int b)
Пишет указанный байт в этот файл.
|
void |
writeBoolean(boolean v)
Записи a
boolean к файлу как однобайтовое значение. |
void |
writeByte(int v)
Записи a
byte к файлу как однобайтовое значение. |
void |
writeBytes(String s)
Пишет строка в файл как последовательность байтов.
|
void |
writeChar(int v)
Записи a
char к файлу как двухбайтовое значение, высокий байт сначала. |
void |
writeChars(String s)
Пишет строка в файл как последовательность символов.
|
void |
writeDouble(double v)
Преобразовывает двойной параметр a
long использование doubleToLongBits метод в class Double , и затем записи это long оцените файлу как восьмибайтовое количество, высокий байт сначала. |
void |
writeFloat(float v)
Преобразовывает аргумент с плавающей запятой в
int использование floatToIntBits метод в class Float , и затем записи это int оцените файлу как четырехбайтовое количество, высокий байт сначала. |
void |
writeInt(int v)
Записи
int к файлу как четыре байта, высокий байт сначала. |
void |
writeLong(long v)
Записи a
long к файлу как восемь байтов, высокий байт сначала. |
void |
writeShort(int v)
Записи a
short к файлу как два байта, высокий байт сначала. |
void |
writeUTF(String str)
Пишет строка в использование файла измененный UTF-8, кодирующий машинно-независимым способом.
|
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)
public RandomAccessFile(File file, String mode) throws FileNotFoundException
File
параметр. Новое FileDescriptor
объект создается, чтобы представить это соединение файла. Параметр mode определяет режим доступа, в котором должен быть открыт файл. Разрешенные значения и их значения:
"rws" и режимы "rwd" работают очень как
Значение
Значение
"r" Открытый для того, чтобы читать только. Вызов любого из методов write получающегося объекта вызовет IOException
быть брошенным."rw" Открытый для чтения и записи. Если файл не будет уже существовать тогда, то попытка будет предпринята, чтобы создать его. "rws" Открытый для чтения и записи, как с "rw", и также требуют, чтобы каждое обновление к контенту файла или метаданным было записано синхронно базовому устройству хранения. "rwd" Открытый для чтения и записи, как с "rw", и также требуют, чтобы каждое обновление к контенту файла было записано синхронно базовому устройству хранения.
force(boolean)
метод FileChannel
class, передавая параметры true и false, соответственно, за исключением того, что они всегда применяются к каждой работе ввода-вывода и поэтому часто более эффективны. Если файл находится на локальном устройстве хранения тогда, когда вызов метода этого class возвраты, гарантируется, что все изменения, произведенные в файле тем вызовом, будут записаны тому устройству. Это полезно для обеспечения, что критическая информация не теряется в случае системного катастрофического отказа. Если файл не находится на локальном устройстве тогда, никакая такая гарантия не делается. Режим "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)
public final FileDescriptor getFD() throws IOException
IOException
- если ошибка ввода-вывода происходит.FileDescriptor
public final FileChannel getChannel()
FileChannel
объект связался с этим файлом. position
из возвращенного канала всегда будет равно смещению указателя файла этого объекта как возвращено getFilePointer
метод. Изменение смещения указателя файла этого объекта, или явно или читая или при записи байтов, изменит позицию канала, и наоборот. Изменение длины файла через этот объект изменит длину, замеченную через канал файла, и наоборот.
public int read() throws IOException
0x00-0x0ff
). Этот метод блокирует, если никакой ввод еще не доступен. Хотя RandomAccessFile
не подкласс InputStream
, этот метод ведет себя точно таким же образом как InputStream.read()
метод InputStream
.
-1
если конец файла был достигнут.IOException
- если ошибка ввода-вывода происходит. Не брошенный, если конец файла был достигнут.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
public int read(byte[] b) throws IOException
b.length
байты данных от этого файла в массив байтов. Этот метод блоки по крайней мере до одного байта ввода доступен. Хотя RandomAccessFile
не подкласс InputStream
, этот метод ведет себя точно таким же образом как InputStream.read(byte[])
метод InputStream
.
b
- буфер, в который читаются данные.-1
если нет больше данных, потому что конец этого файла был достигнут.IOException
- Если первый байт не может быть считан ни по какой причине кроме конца файла, или если файл произвольного доступа был закрыт, или если некоторая другая ошибка ввода-вывода происходит.NullPointerException
- Если b
null
.public final void readFully(byte[] b) throws IOException
b.length
байты от этого файла в байтовый массив, запускающийся в текущем указателе файла. Этот метод неоднократно читает из файла, пока требуемое число байтов не читается. Этот метод блоки до требуемого числа байтов читается, конец потока обнаруживается, или исключение выдается.readFully
в интерфейсе DataInput
b
- буфер, в который читаются данные.EOFException
- если этот файл достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.public final void readFully(byte[] b, int off, int len) throws IOException
len
байты от этого файла в байтовый массив, запускающийся в текущем указателе файла. Этот метод неоднократно читает из файла, пока требуемое число байтов не читается. Этот метод блоки до требуемого числа байтов читается, конец потока обнаруживается, или исключение выдается.readFully
в интерфейсе DataInput
b
- буфер, в который читаются данные.off
- смещение запуска данных.len
- число байтов, чтобы читать.EOFException
- если этот файл достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.public int skipBytes(int n) throws IOException
n
байты ввода, отбрасывающего пропущенные байты. Этот метод может перескочить через некоторое меньшее число байтов, возможно обнулить. Это может следовать из любого из многих условий; достижение конца файла прежде n
байты были пропущены, только одна возможность. Этот метод никогда не бросает EOFException
. Фактическое число пропущенных байтов возвращается. Если n
отрицательно, никакие байты не пропускаются.
skipBytes
в интерфейсе DataInput
n
- число байтов, которые будут пропущены.IOException
- если ошибка ввода-вывода происходит.public void write(int b) throws IOException
write
в интерфейсе DataOutput
b
- byte
быть записанным.IOException
- если ошибка ввода-вывода происходит.public void write(byte[] b) throws IOException
b.length
байты от указанного байтового массива до этого файла, запускающегося в текущем указателе файла.write
в интерфейсе DataOutput
b
- данные.IOException
- если ошибка ввода-вывода происходит.public void write(byte[] b, int off, int len) throws IOException
len
байты от указанного байтового массива, запускающегося при смещении off
к этому файлу.write
в интерфейсе DataOutput
b
- данные.off
- запуск смещается в данных.len
- число байтов, чтобы записать.IOException
- если ошибка ввода-вывода происходит.public long getFilePointer() throws IOException
IOException
- если ошибка ввода-вывода происходит.public void seek(long pos) throws IOException
pos
- позиция смещения, измеренная в байтах с начала файла, в котором можно установить указатель файла.IOException
- если pos
меньше чем 0
или если ошибка ввода-вывода происходит.public long length() throws IOException
IOException
- если ошибка ввода-вывода происходит.public void setLength(long newLength) throws IOException
Если существующая длина файла как возвращено length
метод больше чем newLength
параметр тогда файл будет усеченным. В этом случае, если файловое смещение как возвращено getFilePointer
метод больше чем newLength
тогда после того, как этот метод возвращается, смещение будет равно newLength
.
Если существующая длина файла как возвращено length
метод меньше чем newLength
параметр тогда файл будет расширен. В этом случае содержание расширенной части файла не определяется.
newLength
- Требуемая длина файлаIOException
- Если ошибка ввода-вывода происходитpublic void close() throws IOException
Если у этого файла есть связанный канал тогда, канал закрывается также.
close
в интерфейсе Closeable
close
в интерфейсе AutoCloseable
IOException
- если ошибка ввода-вывода происходит.public final boolean readBoolean() throws IOException
boolean
от этого файла. Этот метод читает единственный байт из файла, запускающегося в текущем указателе файла. Значение 0
представляет false
. Любое другое значение представляет true
. Этот метод блоки до байта читается, конец потока обнаруживается, или исключение выдается.readBoolean
в интерфейсе DataInput
boolean
значение читало.EOFException
- если этот файл достиг конца.IOException
- если ошибка ввода-вывода происходит.public final byte readByte() throws IOException
b
, где 0 <= b <= 255
, тогда результат: (byte)(b)
Этот метод блоки до байта читается, конец потока обнаруживается, или исключение выдается.
readByte
в интерфейсе DataInput
byte
.EOFException
- если этот файл достиг конца.IOException
- если ошибка ввода-вывода происходит.public final int readUnsignedByte() throws IOException
Этот метод блоки до байта читается, конец потока обнаруживается, или исключение выдается.
readUnsignedByte
в интерфейсе DataInput
EOFException
- если этот файл достиг конца.IOException
- если ошибка ввода-вывода происходит.public final short readShort() throws IOException
b1
и b2
, где каждое из двух значений между 0
и 255
, включительно, тогда результат равен: (short)((b1 << 8) | b2)
Этот метод блоки до двух байтов читается, конец потока обнаруживается, или исключение выдается.
readShort
в интерфейсе DataInput
EOFException
- если этот файл достигает конца прежде, чем считать два байта.IOException
- если ошибка ввода-вывода происходит.public final int readUnsignedShort() throws IOException
b1
и b2
, где 0 <= b1, b2 <= 255
, тогда результат равен: (b1 << 8) | b2
Этот метод блоки до двух байтов читается, конец потока обнаруживается, или исключение выдается.
readUnsignedShort
в интерфейсе DataInput
EOFException
- если этот файл достигает конца прежде, чем считать два байта.IOException
- если ошибка ввода-вывода происходит.public final char readChar() throws IOException
b1
и b2
, где 0 <= b1, b2 <= 255
, тогда результат равен: (char)((b1 << 8) | b2)
Этот метод блоки до двух байтов читается, конец потока обнаруживается, или исключение выдается.
readChar
в интерфейсе DataInput
char
.EOFException
- если этот файл достигает конца прежде, чем считать два байта.IOException
- если ошибка ввода-вывода происходит.public final int readInt() throws IOException
b1
, b2
, b3
, и b4
, где 0 <= b1, b2, b3, b4 <= 255
, тогда результат равен: (b1 << 24) | (b2 << 16) + (b3 << 8) + b4
Этот метод блоки до четырех байтов читается, конец потока обнаруживается, или исключение выдается.
readInt
в интерфейсе DataInput
int
.EOFException
- если этот файл достигает конца прежде, чем считать четыре байта.IOException
- если ошибка ввода-вывода происходит.public final long readLong() throws IOException
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
- если ошибка ввода-вывода происходит.public final float readFloat() throws IOException
float
от этого файла. Этот метод читает int
значение, запускающееся в текущем указателе файла, как будто readInt
метод и затем преобразовывает это int
к a float
использование intBitsToFloat
метод в class Float
. Этот метод блоки до четырех байтов читается, конец потока обнаруживается, или исключение выдается.
readFloat
в интерфейсе DataInput
float
.EOFException
- если этот файл достигает конца прежде, чем считать четыре байта.IOException
- если ошибка ввода-вывода происходит.readInt()
, Float.intBitsToFloat(int)
public final double readDouble() throws IOException
double
от этого файла. Этот метод читает a long
значение, запускающееся в текущем указателе файла, как будто readLong
метод и затем преобразовывает это long
к a double
использование longBitsToDouble
метод в class Double
. Этот метод блоки до восьми байтов читается, конец потока обнаруживается, или исключение выдается.
readDouble
в интерфейсе DataInput
double
.EOFException
- если этот файл достигает конца прежде, чем считать восемь байтов.IOException
- если ошибка ввода-вывода происходит.readLong()
, Double.longBitsToDouble(long)
public final String readLine() throws IOException
Строка текста завершается символом возврата каретки ('\r'
), символ новой строки ('\n'
), символ возврата каретки, сразу сопровождаемый символом новой строки, или концом файла. Оконечные знаки строки отбрасываются и не включаются как часть возвращенной строки.
Этот метод блоки до символа новой строки читается, возврат каретки и байт после него читаются (чтобы видеть, является ли это новая строка), конец файла достигается, или исключение выдается.
readLine
в интерфейсе DataInput
IOException
- если ошибка ввода-вывода происходит.public final String readUTF() throws IOException
Первые два байта читаются, запускаясь с текущего указателя файла, как будто readUnsignedShort
. Это значение дает число следующих байтов, которые находятся в закодированной строке, не длине получающейся строки. Следующие байты тогда интерпретируются, поскольку байты, кодирующие символы в измененном UTF-8, форматируют и преобразовываются в символы.
Этот метод блоки до всех байтов читается, конец потока обнаруживается, или исключение выдается.
readUTF
в интерфейсе DataInput
EOFException
- если этот файл достигает конца прежде, чем считать все байты.IOException
- если ошибка ввода-вывода происходит.UTFDataFormatException
- если байты не представляют допустимый, изменил кодирование UTF-8 строки Unicode.readUnsignedShort()
public final void writeBoolean(boolean v) throws IOException
boolean
к файлу как однобайтовое значение. Значение true
выписывается как значение (byte)1
; значение false
выписывается как значение (byte)0
. Запись запускается в текущей позиции указателя файла.writeBoolean
в интерфейсе DataOutput
v
- a boolean
значение, которое будет записано.IOException
- если ошибка ввода-вывода происходит.public final void writeByte(int v) throws IOException
byte
к файлу как однобайтовое значение. Запись запускается в текущей позиции указателя файла.writeByte
в интерфейсе DataOutput
v
- a byte
значение, которое будет записано.IOException
- если ошибка ввода-вывода происходит.public final void writeShort(int v) throws IOException
short
к файлу как два байта, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeShort
в интерфейсе DataOutput
v
- a short
быть записанным.IOException
- если ошибка ввода-вывода происходит.public final void writeChar(int v) throws IOException
char
к файлу как двухбайтовое значение, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeChar
в интерфейсе DataOutput
v
- a char
значение, которое будет записано.IOException
- если ошибка ввода-вывода происходит.public final void writeInt(int v) throws IOException
int
к файлу как четыре байта, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeInt
в интерфейсе DataOutput
v
- int
быть записанным.IOException
- если ошибка ввода-вывода происходит.public final void writeLong(long v) throws IOException
long
к файлу как восемь байтов, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeLong
в интерфейсе DataOutput
v
- a long
быть записанным.IOException
- если ошибка ввода-вывода происходит.public final void writeFloat(float v) throws IOException
int
использование floatToIntBits
метод в class Float
, и затем записи это int
оцените файлу как четырехбайтовое количество, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeFloat
в интерфейсе DataOutput
v
- a float
значение, которое будет записано.IOException
- если ошибка ввода-вывода происходит.Float.floatToIntBits(float)
public final void writeDouble(double v) throws IOException
long
использование doubleToLongBits
метод в class Double
, и затем записи это long
оцените файлу как восьмибайтовое количество, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeDouble
в интерфейсе DataOutput
v
- a double
значение, которое будет записано.IOException
- если ошибка ввода-вывода происходит.Double.doubleToLongBits(double)
public final void writeBytes(String s) throws IOException
writeBytes
в интерфейсе DataOutput
s
- строка байтов, которые будут записаны.IOException
- если ошибка ввода-вывода происходит.public final void writeChars(String s) throws IOException
writeChar
метод. Запись запускается в текущей позиции указателя файла.writeChars
в интерфейсе DataOutput
s
- a String
значение, которое будет записано.IOException
- если ошибка ввода-вывода происходит.writeChar(int)
public final void writeUTF(String str) throws IOException
Во-первых, два байта пишутся файлу, запускающемуся в текущем указателе файла, как будто writeShort
метод, дающий число байтов, чтобы следовать. Это значение является числом байтов, фактически выписанных, не длина строки. После длины каждый символ строки выводится, в последовательности, используя измененный UTF-8, кодирующий для каждого символа.
writeUTF
в интерфейсе DataOutput
str
- строка, которая будет записана.IOException
- если ошибка ввода-вывода происходит.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92