|
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 - если ошибка ввода-вывода происходит.FileDescriptorpublic 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 - offpublic 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 в интерфейсе DataInputb - буфер, в который читаются данные.EOFException - если этот файл достигает конца прежде, чем считать все байты.IOException - если ошибка ввода-вывода происходит.public final void readFully(byte[] b,
int off,
int len)
throws IOException
len байты от этого файла в байтовый массив, запускающийся в текущем указателе файла. Этот метод неоднократно читает из файла, пока требуемое число байтов не читается. Этот метод блоки до требуемого числа байтов читается, конец потока обнаруживается, или исключение выдается.readFully в интерфейсе DataInputb - буфер, в который читаются данные.off - смещение запуска данных.len - число байтов, чтобы читать.EOFException - если этот файл достигает конца прежде, чем считать все байты.IOException - если ошибка ввода-вывода происходит.public int skipBytes(int n)
throws IOException
n байты ввода, отбрасывающего пропущенные байты. Этот метод может перескочить через некоторое меньшее число байтов, возможно обнулить. Это может следовать из любого из многих условий; достижение конца файла прежде n байты были пропущены, только одна возможность. Этот метод никогда не бросает EOFException. Фактическое число пропущенных байтов возвращается. Если n отрицательно, никакие байты не пропускаются.
skipBytes в интерфейсе DataInputn - число байтов, которые будут пропущены.IOException - если ошибка ввода-вывода происходит.public void write(int b)
throws IOException
write в интерфейсе DataOutputb - byte быть записанным.IOException - если ошибка ввода-вывода происходит.public void write(byte[] b)
throws IOException
b.length байты от указанного байтового массива до этого файла, запускающегося в текущем указателе файла.write в интерфейсе DataOutputb - данные.IOException - если ошибка ввода-вывода происходит.public void write(byte[] b,
int off,
int len)
throws IOException
len байты от указанного байтового массива, запускающегося при смещении off к этому файлу.write в интерфейсе DataOutputb - данные.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 в интерфейсе Closeableclose в интерфейсе AutoCloseableIOException - если ошибка ввода-вывода происходит.public final boolean readBoolean()
throws IOException
boolean от этого файла. Этот метод читает единственный байт из файла, запускающегося в текущем указателе файла. Значение 0 представляет false. Любое другое значение представляет true. Этот метод блоки до байта читается, конец потока обнаруживается, или исключение выдается.readBoolean в интерфейсе DataInputboolean значение читало.EOFException - если этот файл достиг конца.IOException - если ошибка ввода-вывода происходит.public final byte readByte()
throws IOException
b, где 0 <= b <= 255, тогда результат:
(byte)(b)
Этот метод блоки до байта читается, конец потока обнаруживается, или исключение выдается.
readByte в интерфейсе DataInputbyte.EOFException - если этот файл достиг конца.IOException - если ошибка ввода-вывода происходит.public final int readUnsignedByte()
throws IOException
Этот метод блоки до байта читается, конец потока обнаруживается, или исключение выдается.
readUnsignedByte в интерфейсе DataInputEOFException - если этот файл достиг конца.IOException - если ошибка ввода-вывода происходит.public final short readShort()
throws IOException
b1 и b2, где каждое из двух значений между 0 и 255, включительно, тогда результат равен:
(short)((b1 << 8) | b2)
Этот метод блоки до двух байтов читается, конец потока обнаруживается, или исключение выдается.
readShort в интерфейсе DataInputEOFException - если этот файл достигает конца прежде, чем считать два байта.IOException - если ошибка ввода-вывода происходит.public final int readUnsignedShort()
throws IOException
b1 и b2, где 0 <= b1, b2 <= 255, тогда результат равен:
(b1 << 8) | b2
Этот метод блоки до двух байтов читается, конец потока обнаруживается, или исключение выдается.
readUnsignedShort в интерфейсе DataInputEOFException - если этот файл достигает конца прежде, чем считать два байта.IOException - если ошибка ввода-вывода происходит.public final char readChar()
throws IOException
b1 и b2, где 0 <= b1, b2 <= 255, тогда результат равен:
(char)((b1 << 8) | b2)
Этот метод блоки до двух байтов читается, конец потока обнаруживается, или исключение выдается.
readChar в интерфейсе DataInputchar.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 в интерфейсе DataInputint.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 в интерфейсе DataInputlong.EOFException - если этот файл достигает конца прежде, чем считать восемь байтов.IOException - если ошибка ввода-вывода происходит.public final float readFloat()
throws IOException
float от этого файла. Этот метод читает int значение, запускающееся в текущем указателе файла, как будто readInt метод и затем преобразовывает это int к a float использование intBitsToFloat метод в class Float. Этот метод блоки до четырех байтов читается, конец потока обнаруживается, или исключение выдается.
readFloat в интерфейсе DataInputfloat.EOFException - если этот файл достигает конца прежде, чем считать четыре байта.IOException - если ошибка ввода-вывода происходит.readInt(), Float.intBitsToFloat(int)public final double readDouble()
throws IOException
double от этого файла. Этот метод читает a long значение, запускающееся в текущем указателе файла, как будто readLong метод и затем преобразовывает это long к a double использование longBitsToDouble метод в class Double. Этот метод блоки до восьми байтов читается, конец потока обнаруживается, или исключение выдается.
readDouble в интерфейсе DataInputdouble.EOFException - если этот файл достигает конца прежде, чем считать восемь байтов.IOException - если ошибка ввода-вывода происходит.readLong(), Double.longBitsToDouble(long)public final String readLine() throws IOException
Строка текста завершается символом возврата каретки ('\r'), символ новой строки ('\n'), символ возврата каретки, сразу сопровождаемый символом новой строки, или концом файла. Оконечные знаки строки отбрасываются и не включаются как часть возвращенной строки.
Этот метод блоки до символа новой строки читается, возврат каретки и байт после него читаются (чтобы видеть, является ли это новая строка), конец файла достигается, или исключение выдается.
readLine в интерфейсе DataInputIOException - если ошибка ввода-вывода происходит.public final String readUTF() throws IOException
Первые два байта читаются, запускаясь с текущего указателя файла, как будто readUnsignedShort. Это значение дает число следующих байтов, которые находятся в закодированной строке, не длине получающейся строки. Следующие байты тогда интерпретируются, поскольку байты, кодирующие символы в измененном UTF-8, форматируют и преобразовываются в символы.
Этот метод блоки до всех байтов читается, конец потока обнаруживается, или исключение выдается.
readUTF в интерфейсе DataInputEOFException - если этот файл достигает конца прежде, чем считать все байты.IOException - если ошибка ввода-вывода происходит.UTFDataFormatException - если байты не представляют допустимый, изменил кодирование UTF-8 строки Unicode.readUnsignedShort()public final void writeBoolean(boolean v)
throws IOException
boolean к файлу как однобайтовое значение. Значение true выписывается как значение (byte)1; значение false выписывается как значение (byte)0. Запись запускается в текущей позиции указателя файла.writeBoolean в интерфейсе DataOutputv - a boolean значение, которое будет записано.IOException - если ошибка ввода-вывода происходит.public final void writeByte(int v)
throws IOException
byte к файлу как однобайтовое значение. Запись запускается в текущей позиции указателя файла.writeByte в интерфейсе DataOutputv - a byte значение, которое будет записано.IOException - если ошибка ввода-вывода происходит.public final void writeShort(int v)
throws IOException
short к файлу как два байта, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeShort в интерфейсе DataOutputv - a short быть записанным.IOException - если ошибка ввода-вывода происходит.public final void writeChar(int v)
throws IOException
char к файлу как двухбайтовое значение, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeChar в интерфейсе DataOutputv - a char значение, которое будет записано.IOException - если ошибка ввода-вывода происходит.public final void writeInt(int v)
throws IOException
int к файлу как четыре байта, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeInt в интерфейсе DataOutputv - int быть записанным.IOException - если ошибка ввода-вывода происходит.public final void writeLong(long v)
throws IOException
long к файлу как восемь байтов, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeLong в интерфейсе DataOutputv - a long быть записанным.IOException - если ошибка ввода-вывода происходит.public final void writeFloat(float v)
throws IOException
int использование floatToIntBits метод в class Float, и затем записи это int оцените файлу как четырехбайтовое количество, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeFloat в интерфейсе DataOutputv - a float значение, которое будет записано.IOException - если ошибка ввода-вывода происходит.Float.floatToIntBits(float)public final void writeDouble(double v)
throws IOException
long использование doubleToLongBits метод в class Double, и затем записи это long оцените файлу как восьмибайтовое количество, высокий байт сначала. Запись запускается в текущей позиции указателя файла.writeDouble в интерфейсе DataOutputv - a double значение, которое будет записано.IOException - если ошибка ввода-вывода происходит.Double.doubleToLongBits(double)public final void writeBytes(String s) throws IOException
writeBytes в интерфейсе DataOutputs - строка байтов, которые будут записаны.IOException - если ошибка ввода-вывода происходит.public final void writeChars(String s) throws IOException
writeChar метод. Запись запускается в текущей позиции указателя файла.writeChars в интерфейсе DataOutputs - a String значение, которое будет записано.IOException - если ошибка ввода-вывода происходит.writeChar(int)public final void writeUTF(String str) throws IOException
Во-первых, два байта пишутся файлу, запускающемуся в текущем указателе файла, как будто writeShort метод, дающий число байтов, чтобы следовать. Это значение является числом байтов, фактически выписанных, не длина строки. После длины каждый символ строки выводится, в последовательности, используя измененный UTF-8, кодирующий для каждого символа.
writeUTF в интерфейсе DataOutputstr - строка, которая будет записана.IOException - если ошибка ввода-вывода происходит.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92