java.lang.Object | +--java.io.RandomAccessFileAll Implemented Interfaces:
RandomAccessFile(java.lang.String name, java.lang.String mode) This method initializes a new instance of |
RandomAccessFile(java.io.File file, java.lang.String mode)This method initializes a new instance of |
void | close()This method closes the file and frees up all file related system resources. |
java.nio.channels.FileChannel | getChannel() |
java.io.FileDescriptor | getFD() This method returns a |
long | getFilePointer()This method returns the current offset in the file at which the next read or write will occur |
long | length()This method returns the length of the file in bytes |
int | read()This method reads a single byte of data from the file and returns it as an integer. |
int | read(byte[] buf)This method reads bytes from the file into the specified array. |
int | read(byte[] buf, int offset, int len)This methods reads up to |
boolean | readBoolean()This method reads a Java boolean value from an input stream. |
byte | readByte()This method reads a Java byte value from an input stream. |
char | readChar() This method reads a Java |
double | readDouble()This method reads a Java double value from an input stream. |
float | readFloat()This method reads a Java float value from an input stream. |
void | readFully(byte[] buf)This method reads raw bytes into the passed array until the array is full. |
synchronized void | readFully(byte[] buf, int offset, int len)This method reads raw bytes into the passed array |
int | readInt()This method reads a Java |
synchronized java.lang.String | readLine()This method reads the next line of text data from an input stream. |
long | readLong() This method reads a Java long value from an input stream
It operates by reading eight bytes from the stream and converting them to
a single Java |
short | readShort()This method reads a signed 16-bit value into a Java in from the stream. |
synchronized java.lang.String | readUTF() This method reads a |
int | readUnsignedByte() This method reads 8 unsigned bits into a Java |
int | readUnsignedShort()This method reads 16 unsigned bits into a Java int value from the stream. |
void | seek(long pos)This method sets the current file position to the specified offset from the beginning of the file. |
void | setLength(long newlen)This method sets the length of the file to the specified length. |
int | skipBytes(int n)This method attempts to skip and discard the specified number of bytes in the input stream. |
void | write(int b)This method writes a single byte of data to the file. |
void | write(byte[] buf)This method writes all the bytes in the specified array to the file. |
void | write(byte[] buf, int offset, int len)This method writes |
void | writeBoolean(boolean b) This method writes a Java |
void | writeByte(int b) This method writes a Java |
synchronized void | writeBytes(java.lang.String s) This method writes all the bytes in a |
void | writeChar(int c) This method writes a single |
void | writeChars(java.lang.String s) This method writes all the characters in a |
void | writeDouble(double d) This method writes a Java |
void | writeFloat(float f) This method writes a Java |
void | writeInt(int i) This method writes a Java |
void | writeLong(long l) This method writes a Java |
void | writeShort(int s) This method writes a Java |
synchronized void | writeUTF(java.lang.String s) This method writes a Java |
public RandomAccessFile(java.io.File file, java.lang.String mode)RandomAccessFile
to read from the specified File object with the specified
access mode. The access mode is either "r" for read only access or "rw"
for read-write access.
Note that a SecurityManager check is made prior to
opening the file to determine whether or not this file is allowed to
be read or written.
file - The File object to read and/or write.mode - "r" for read only or "rw" for read-write access to the fileIllegalArgumentException - If mode has an illegal valueSecurityException - If the requested access to the file is not allowedIOException - If any other error occurspublic RandomAccessFile(java.lang.String name, java.lang.String mode)RandomAccessFile
to read from the specified file name with the specified access mode.
The access mode is either "r" for read only access or "rw" for read
write access.
Note that a SecurityManager check is made prior to
opening the file to determine whether or not this file is allowed to
be read or written.
name - The name of the file to read and/or writemode - "r" for read only or "rw" for read-write access to the fileIllegalArgumentException - If mode has an illegal valueSecurityException - If the requested access to the file is not allowedIOException - If any other error occurspublic void close()public FileChannel getChannel()public final FileDescriptor getFD()FileDescriptor object that
represents the native file handle for this file.
FileDescriptor object for this fileIOException - If an error occurspublic long getFilePointer()IOException - If an error occurspublic long length()IOException - If an error occurspublic int read()IOException - If an error occurspublic int read(byte[] buf)buf.length bytes can be read.
buf - The buffer to read bytes from the file intoIOException - If an error occurspublic int read(byte[] buf, int offset, int len)len bytes from the file into the s
pecified array starting at position offset into the array.
buf - The array to read the bytes intooffset - The index into the array to start storing byteslen - The requested number of bytes to readIOException - If an error occurspublic final boolean readBoolean()false If the byte is non-zero, then
the value returned is true
This method can read a boolean written by an object implementing the
writeBoolean() method in the DataOutput interface.
boolean value readEOFException - If end of file is reached before reading the booleanIOException - If any other error occurspublic final byte readByte()
This method can read a byte written by an object implementing the
writeByte() method in the DataOutput interface.
byte value readEOFException - If end of file is reached before reading the byteIOException - If any other error occurspublic final char readChar()char value from an input stream.
It operates by reading two bytes from the stream and converting them to
a single 16-bit Java char The two bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if byte1 and code{byte2 represent the first
and second byte read from the stream respectively, they will be
transformed to a char in the following manner:
(char)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF)
This method can read a char written by an object implementing the
writeChar() method in the DataOutput interface.
char value readEOFException - If end of file is reached before reading the charIOException - If any other error occurspublic final double readDouble()logn value from the stream by calling the
readLong() method in this interface, then converts that long
to a double using the longBitsToDouble method in
the class java.lang.Double
This method can read a double written by an object implementing the
writeDouble() method in the DataOutput interface.
double value readEOFException - If end of file is reached before reading the doubleIOException - If any other error occursjava.lang.Double
DataOutputpublic final float readFloat()int value from the stream by calling the
readInt() method in this interface, then converts that int
to a float using the intBitsToFloat method in
the class java.lang.Float
This method can read a float written by an object implementing the
writeFloat() method in the DataOutput interface.
float value readEOFException - If end of file is reached before reading the floatIOException - If any other error occursjava.lang.Float
DataOutputpublic final void readFully(byte[] buf)buf - The buffer into which to read the dataEOFException - If end of file is reached before filling the bufferIOException - If any other error occurspublic final synchronized void readFully(byte[] buf, int offset, int len)buf starting
offset bytes into the buffer. The number of bytes read will be
exactly len Note that this method blocks until the data is
available and * throws an exception if there is not enough data left in
the stream to read len bytes.
buf - The buffer into which to read the dataoffset - The offset into the buffer to start storing datalen - The number of bytes to read into the bufferEOFException - If end of file is reached before filling the bufferIOException - If any other error occurspublic final int readInt()int value from an input stream
It operates by reading four bytes from the stream and converting them to
a single Java int The bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if byte1 through byte4 represent the first
four bytes read from the stream, they will be
transformed to an int in the following manner:
(int)(((byte1 & 0xFF) << 24) + ((byte2 & 0xFF) << 16) +
((byte3 & 0xFF) << 8) + (byte4 & 0xFF)))
The value returned is in the range of 0 to 65535.
This method can read an int written by an object implementing the
writeInt() method in the DataOutput interface.
int value readEOFException - If end of file is reached before reading the intIOException - If any other error occurspublic final synchronized String readLine()char
values by treating the byte read as the low eight bits of the char
and using 0 as the high eight bits. Because of this, it does
not support the full 16-bit Unicode character set.
The reading of bytes ends when either the end of file or a line terminator
is encountered. The bytes read are then returned as a String
A line terminator is a byte sequence consisting of either
\r \n or \r\n These termination charaters are
discarded and are not returned as part of the string.
This method can read data that was written by an object implementing the
writeLine() method in DataOutput
StringIOException - If an error occurspublic final long readLong()long The bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if byte1 through byte8 represent the first
eight bytes read from the stream, they will be
transformed to an long in the following manner:
(long)((((long)byte1 & 0xFF) << 56) + (((long)byte2 & 0xFF) << 48) +
(((long)byte3 & 0xFF) << 40) + (((long)byte4 & 0xFF) << 32) +
(((long)byte5 & 0xFF) << 24) + (((long)byte6 & 0xFF) << 16) +
(((long)byte7 & 0xFF) << 8) + ((long)byte9 & 0xFF)))
The value returned is in the range of 0 to 65535.
This method can read an long written by an object implementing the
writeLong() method in the DataOutput interface.
long value readEOFException - If end of file is reached before reading the longIOException - If any other error occurspublic final short readShort()short The two bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if byte1 and code{byte2 represent the first
and second byte read from the stream respectively, they will be
transformed to a short in the following manner:
(short)(((byte1 & 0xFF) << 8) | (byte2 & 0xFF)
The value returned is in the range of -32768 to 32767.
This method can read a short written by an object implementing the
writeShort() method in the DataOutput interface.
short value readEOFException - If end of file is reached before reading the valueIOException - If any other error occurspublic final synchronized String readUTF()String from an input stream that is encoded in
a modified UTF-8 format. This format has a leading two byte sequence
that contains the remaining number of bytes to read. This two byte
sequence is read using the readUnsignedShort() method of this
interface.
After the number of remaining bytes have been determined, these bytes
are read an transformed into char values. These char values
are encoded in the stream using either a one, two, or three byte format.
The particular format in use can be determined by examining the first
byte read.
If the first byte has a high order bit of 0 then
that character consists on only one byte. This character value consists
of seven bits that are at positions 0 through 6 of the byte. As an
example, if byte1 is the byte read from the stream, it would
be converted to a char like so:
(char)byte1
If the first byte has 110 as its high order bits, then the
character consists of two bytes. The bits that make up the character
value are in positions 0 through 4 of the first byte and bit positions
0 through 5 of the second byte. (The second byte should have
10 as its high order bits). These values are in most significant
byte first (i.e., "big endian") order.
As an example, if byte1 and byte2 are the first two bytes
read respectively, and the high order bits of them match the patterns
which indicate a two byte character encoding, then they would be
converted to a Java char like so:
(char)(((byte1 & 0x1F) << 6) | (byte2 & 0x3F))
If the first byte has a 1110 as its high order bits, then the
character consists of three bytes. The bits that make up the character
value are in positions 0 through 3 of the first byte and bit positions
0 through 5 of the other two bytes. (The second and third bytes should
have 10 as their high order bits). These values are in most
significant byte first (i.e., "big endian") order.
As an example, if byte1 byte2 and byte3 are the
three bytes read, and the high order bits of them match the patterns
which indicate a three byte character encoding, then they would be
converted to a Java char like so:
(char)(((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | (byte3 & 0x3F))
Note that all characters are encoded in the method that requires the
fewest number of bytes with the exception of the character with the
value of \u0000 which is encoded as two bytes. This is a
modification of the UTF standard used to prevent C language style
NUL values from appearing in the byte stream.
This method can read data that was written by an object implementing the
writeUTF() method in DataOutput
String readEOFException - If end of file is reached before reading the StringUTFDataFormatException - If the data is not in UTF-8 formatIOException - If any other error occurspublic final int readUnsignedByte()int value from the
stream. The value returned is in the range of 0 to 255.
This method can read an unsigned byte written by an object implementing the
writeUnsignedByte() method in the DataOutput interface.
intEOFException - If end of file is reached before reading the valueIOException - If any other error occurspublic final int readUnsignedShort()int The two bytes are stored most
significant byte first (i.e., "big endian") regardless of the native
host byte ordering.
As an example, if byte1 and code{byte2 represent the first
and second byte read from the stream respectively, they will be
transformed to an int in the following manner:
(int)(((byte1 & 0xFF) << 8) + (byte2 & 0xFF))
The value returned is in the range of 0 to 65535.
This method can read an unsigned short written by an object implementing
the writeUnsignedShort() method in the DataOutput interface.
intEOFException - If end of file is reached before reading the valueIOException - If any other error occurspublic void seek(long pos)pos - The offset from the beginning of the file at which to set the file pointerIOException - If an error occurspublic void setLength(long newlen)The file must be open for write access for this operation to succeed.
newlen - The new length of the fileIOException - If an error occurspublic int skipBytes(int n)n - The requested number of bytes to skip.IOException - If an error occurs.public void write(byte[] buf)buf - The array of bytes to write to the filepublic void write(byte[] buf, int offset, int len)len bytes to the file from the specified
array starting at index offset into the array.
buf - The array of bytes to write to the fileoffset - The index into the array to start writing filelen - The number of bytes to writeIOException - If an error occurspublic void write(int b)b - byte of data to write, passed as an int.IOException - If an error occurspublic final void writeBoolean(boolean b)boolean to the underlying output
stream. For a value of true, 1 is written to the stream.
For a value of false, 0 is written.
b - The boolean value to write to the streamIOException - If an error occurspublic final void writeByte(int b)byte value to the underlying
output stream.
b - The byte to write to the stream, passed as an int.IOException - If an error occurspublic final synchronized void writeBytes(java.lang.String s)String out to the
stream. One byte is written for each character in the String.
The high eight bits of each character are discarded.
s - The String to write to the streamIOException - If an error occurspublic final void writeChar(int c)char value to the stream,
high byte first.
c - The char value to write, passed as an int.IOException - If an error occurspublic final void writeChars(java.lang.String s)String to the
stream. There will be two bytes for each character value. The high
byte of the character will be written first.
s - The String to write to the stream.IOException - If an error occurspublic final void writeDouble(double d)double value to the stream. This
value is written by first calling the method Double.doubleToLongBits
to retrieve an long representing the floating point number,
then writing this long value to the stream exactly the same
as the writeLong() method does.
d - The double precision floating point number to write to the stream.IOException - If an error occurswriteLong
public final void writeFloat(float f)float value to the stream. This
value is written by first calling the method Float.floatToIntBits
to retrieve an int representing the floating point number,
then writing this int value to the stream exactly the same
as the writeInt() method does.
f - The floating point number to write to the stream.IOException - If an error occurswriteInt
public final void writeInt(int i)int to the stream, high bytes
first. This method requires four bytes to encode the value.
i - The int value to write to the stream.IOException - If an error occurspublic final void writeLong(long l)long to the stream, high bytes
first. This method requires eight bytes to encode the value.
l - The long value to write to the stream.IOException - If an error occurspublic final void writeShort(int s)short to the stream, high byte
first. This method requires two bytes to encode the value.
s - The short value to write to the stream, passed as an int.IOException - If an error occurspublic final synchronized void writeUTF(java.lang.String s)String to the stream in a modified
UTF-8 format. First, two bytes are written to the stream indicating the
number of bytes to follow. Note that this is the number of bytes in the
encoded String not the String length. Next
come the encoded characters. Each character in the String
is encoded as either one, two or three bytes. For characters in the
range of \u0001 to \u007F, one byte is used. The character
value goes into bits 0-7 and bit eight is 0. For characters in the range
of \u0080 to \u007FF, two bytes are used. Bits
6-10 of the character value are encoded bits 0-4 of the first byte, with
the high bytes having a value of "110". Bits 0-5 of the character value
are stored in bits 0-5 of the second byte, with the high bits set to
"10". This type of encoding is also done for the null character
\u0000. This eliminates any C style NUL character values
in the output. All remaining characters are stored as three bytes.
Bits 12-15 of the character value are stored in bits 0-3 of the first
byte. The high bits of the first bytes are set to "1110". Bits 6-11
of the character value are stored in bits 0-5 of the second byte. The
high bits of the second byte are set to "10". And bits 0-5 of the
character value are stored in bits 0-5 of byte three, with the high bits
of that byte set to "10".
s - The String to write to the output in UTF formatIOException - If an error occurs
DataInputandDataOutputinterfaces to allow the reading and writing of Java primitives.