|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
ObjectEnhancedRandomAccessFile
public class EnhancedRandomAccessFile
DataInput,
DataOutput,
RandomAccessFileByteOrder is not respected with writing| Field Summary | |
|---|---|
static int |
BIG_ENDIAN
_more_ |
protected boolean |
bigEndian
The current endian (big or little) mode of the eraf. |
protected byte[] |
buffer
The buffer used to load the data. |
protected long |
bufferStart
The offset in bytes of the start of the buffer, from the start of the eraf. |
protected boolean |
cached
Support for FileCache. |
protected long |
dataEnd
The offset in bytes of the end of the data in the buffer, from the start of the eraf. |
protected int |
dataSize
The size of the data stored in the buffer, in bytes. |
static int |
DEFAULT_BUFFER_SIZE
The default buffer size, in bytes. |
protected boolean |
endOfFile
True if we are at the end of the eraf. |
protected RandomAccessFile |
eraf
The underlying java.io.RandomAccessFile. |
protected File |
file
_more_ |
protected long |
filePosition
The offset in bytes from the eraf start, of the next read or write operation. |
static int |
LITTLE_ENDIAN
_more_ |
protected String |
location
|
protected long |
minLength
make sure eraf is this long when closed |
protected boolean |
readonly
The access mode of the eraf. |
| Constructor Summary | |
|---|---|
|
EnhancedRandomAccessFile(File file,
String mode)
Constructor, default buffer size. |
|
EnhancedRandomAccessFile(File file,
String mode,
int bufferSize)
Constructor. |
protected |
EnhancedRandomAccessFile(int bufferSize)
_more_ |
| Method Summary | |
|---|---|
void |
close()
Close the eraf, and release any associated system resources. |
void |
finalize()
Close silently the underlying RandomAccessFile |
void |
flush()
Copy the contents of the buffer to the disk. |
ByteOrder |
getByteOrder()
|
FileChannel |
getChannel()
_more_ |
FileDescriptor |
getFD()
Returns the opaque eraf descriptor object associated with this eraf. |
File |
getFile()
Get the eraf file, or name. |
long |
getFilePointer()
Returns the current position in the eraf, where the next read or write will occur. |
String |
getLocation()
|
RandomAccessFile |
getRandomAccessFile()
|
boolean |
isAtEndOfFile()
Return true if eraf pointer is at end of eraf. |
boolean |
isCached()
_more_ |
long |
length()
Get the length of the eraf. |
protected int |
read_(long pos,
byte[] b,
int offset,
int len)
read directly, without going through the buffer |
int |
read()
Read a byte of data from the eraf, blocking until data is available. |
int |
read(byte[] b)
Read up to b.length( ) bytes into an array. |
int |
read(byte[] b,
int off,
int len)
Read up to len bytes into an array, at a specified offset. |
boolean |
readBoolean()
Reads a boolean from this eraf. |
byte |
readByte()
Reads a signed 8-bit value from this eraf. |
protected int |
readBytes(byte[] b,
int off,
int len)
Read up to len bytes into an array, at a specified offset. |
char |
readChar()
Reads a Unicode character from this eraf. |
double |
readDouble()
Reads a double from this eraf. |
void |
readDouble(double[] pa,
int start,
int n)
_more_ |
float |
readFloat()
Reads a float from this eraf. |
void |
readFloat(float[] pa,
int start,
int n)
_more_ |
void |
readFully(byte[] b)
Reads b.length bytes from this eraf into the byte array. |
void |
readFully(byte[] b,
int off,
int len)
Reads exactly len bytes from this eraf into the byte
array. |
int |
readInt()
Reads a signed 32-bit integer from this eraf. |
void |
readInt(int[] pa,
int start,
int n)
Reads a signed 24-bit integer from this eraf. |
int |
readIntUnbuffered(long pos)
Read an integer at the given position, bypassing all buffering. |
String |
readLine()
Reads the next line of text from this eraf. |
long |
readLong()
Reads a signed 64-bit integer from this eraf. |
void |
readLong(long[] pa,
int start,
int n)
_more_ |
short |
readShort()
Reads a signed 16-bit number from this eraf. |
void |
readShort(short[] pa,
int start,
int n)
_more_ |
String |
readString(int nbytes)
Read a String of knoen length. |
int |
readUnsignedByte()
Reads an unsigned 8-bit number from this eraf. |
long |
readUnsignedInt()
|
int |
readUnsignedShort()
Reads an unsigned 16-bit number from this eraf. |
String |
readUTF()
Reads in a string from this eraf. |
void |
seek(long pos)
Set the position in the eraf for the next read or write. |
void |
setByteOrder(ByteOrder bo)
Change the current endian mode. |
void |
setCached(boolean cached)
_more_ |
void |
setExtendMode()
Set extendMode for truncated, yet valid files - old NetCDF code allowed this when NOFILL on, and user doesnt write all variables. |
void |
setMinLength(long minLength)
Make sure eraf is at least this long when its closed. needed when not using fill mode, and not all data is written. |
int |
skipBytes(int n)
Skips exactly n bytes of input. |
long |
skipBytes(long n)
Skips exactly n bytes of input. |
void |
synch()
_more_ |
String |
toString()
Create a string representation of this object. |
void |
unread()
Unread the last byte read. |
void |
write(byte[] b)
Writes b.length bytes from the specified byte array
starting at offset off to this eraf. |
void |
write(byte[] b,
int off,
int len)
Writes len bytes from the specified byte array starting at
offset off to this eraf. |
void |
write(int b)
Write a byte to the eraf. |
void |
writeBoolean(boolean v)
Writes a boolean to the eraf as a 1-byte value. |
void |
writeBoolean(boolean[] pa,
int start,
int n)
_more_ |
void |
writeByte(int v)
Writes a byte to the eraf as a 1-byte value. |
void |
writeBytes(byte[] b,
int off,
int len)
Write len bytes from an array to the eraf. |
void |
writeBytes(char[] b,
int off,
int len)
Writes the character array to the eraf as a sequence of bytes. |
void |
writeBytes(String s)
Writes the string to the eraf as a sequence of bytes. |
void |
writeChar(char[] pa,
int start,
int n)
_more_ |
void |
writeChar(int v)
Writes a char to the eraf as a 2-byte value, high byte
first. |
void |
writeChars(String s)
Writes a string to the eraf as a sequence of characters. |
void |
writeDouble(double v)
Converts the double argument to a long using the
doubleToLongBits method in class Double,
and then writes that long value to the eraf as an 8-byte
quantity, high byte first. |
void |
writeDouble(double[] pa,
int start,
int n)
_more_ |
void |
writeFloat(float v)
Converts the float argument to an int using the
floatToIntBits method in class Float, and
then writes that int value to the eraf as a 4-byte
quantity, high byte first. |
void |
writeFloat(float[] pa,
int start,
int n)
_more_ |
void |
writeInt(int v)
Writes an int to the eraf as four bytes, high byte first. |
void |
writeInt(int[] pa,
int start,
int n)
_more_ |
void |
writeLong(long v)
Writes a long to the eraf as eight bytes, high byte first. |
void |
writeLong(long[] pa,
int start,
int n)
_more_ |
void |
writeShort(int v)
Writes a short to the eraf as two bytes, high byte first. |
void |
writeShort(short[] pa,
int start,
int n)
_more_ |
void |
writeUTF(String str)
Writes a string to the eraf using UTF-8 encoding in a machine-independent manner. |
| Methods inherited from class Object |
|---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public static final int BIG_ENDIAN
public static final int LITTLE_ENDIAN
public static final int DEFAULT_BUFFER_SIZE
protected File file
protected RandomAccessFile eraf
protected long filePosition
protected byte[] buffer
protected long bufferStart
protected long dataEnd
bufferStart + dataSize, but it is cached to speed up the
read( ) method.
protected int dataSize
protected boolean endOfFile
protected boolean readonly
protected boolean bigEndian
protected long minLength
protected boolean cached
protected String location
| Constructor Detail |
|---|
protected EnhancedRandomAccessFile(int bufferSize)
bufferSize - _more_
public EnhancedRandomAccessFile(File file,
String mode)
throws IOException
file - file of the erafmode - same as for java.io.RandomAccessFile
IOException
public EnhancedRandomAccessFile(File file,
String mode,
int bufferSize)
throws IOException
file - file of the erafmode - same as for java.io.RandomAccessFilebufferSize - size of buffer to use.
IOException| Method Detail |
|---|
public RandomAccessFile getRandomAccessFile()
public void close()
throws IOException
IOException - if an I/O error occurrs.public void finalize()
RandomAccessFile
finalize in class Objectpublic boolean isAtEndOfFile()
public FileChannel getChannel()
public void seek(long pos)
throws IOException
pos - the offset (in bytes) from the start of the eraf.
IOException - if an I/O error occurrs.
public long getFilePointer()
throws IOException
IOException - if an I/O error occurrs.public File getFile()
public long length()
throws IOException
IOException - if an I/O error occurrs.public void setByteOrder(ByteOrder bo)
endian - public ByteOrder getByteOrder()
public FileDescriptor getFD()
throws IOException
IOException - if an I/O error occurs.
public void flush()
throws IOException
IOException - if an I/O error occurrs.public void setMinLength(long minLength)
minLength - _more_public void setExtendMode()
public int read()
throws IOException
IOException - if an I/O error occurrs.
protected int readBytes(byte[] b,
int off,
int len)
throws IOException
len bytes into an array, at a specified offset.
This will block until at least one byte has been read.
b - the byte array to receive the bytes.off - the offset in the array where copying will start.len - the number of bytes to copy.
IOException - if an I/O error occurrs.
protected int read_(long pos,
byte[] b,
int offset,
int len)
throws IOException
pos - _more_b - _more_offset - _more_len - _more_
IOException - _more_
public int read(byte[] b,
int off,
int len)
throws IOException
len bytes into an array, at a specified offset.
This will block until at least one byte has been read.
b - the byte array to receive the bytes.off - the offset in the array where copying will start.len - the number of bytes to copy.
IOException - if an I/O error occurrs.
public int read(byte[] b)
throws IOException
b.length( ) bytes into an array. This will
block until at least one byte has been read.
b - the byte array to receive the bytes.
IOException - if an I/O error occurrs.
public void readFully(byte[] b)
throws IOException
b.length bytes from this eraf into the byte array.
This method reads repeatedly from the eraf until all the bytes are read.
This method blocks until all the bytes are read, the end of the stream is
detected, or an exception is thrown.
readFully in interface DataInputb - the buffer into which the data is read.
EOFException - if this eraf reaches the end before reading all the bytes.
IOException - if an I/O error occurs.
public void readFully(byte[] b,
int off,
int len)
throws IOException
len bytes from this eraf into the byte
array. This method reads repeatedly from the eraf until all the bytes are
read. This method blocks until all the bytes are read, the end of the
stream is detected, or an exception is thrown.
readFully in interface DataInputb - the buffer into which the data is read.off - the start offset of the data.len - the number of bytes to read.
EOFException - if this eraf reaches the end before reading all the bytes.
IOException - if an I/O error occurs.
public int skipBytes(int n)
throws IOException
n bytes of input. This method blocks until
all the bytes are skipped, the end of the stream is detected, or an
exception is thrown.
skipBytes in interface DataInputn - the number of bytes to be skipped.
n.
EOFException - if this eraf reaches the end before skipping all the
bytes.
IOException - if an I/O error occurs.
public long skipBytes(long n)
throws IOException
n bytes of input. This method blocks until
all the bytes are skipped, the end of the stream is detected, or an
exception is thrown.
n - the number of bytes to be skipped.
n.
EOFException - if this eraf reaches the end before skipping all the
bytes.
IOException - if an I/O error occurs.public void unread()
public void write(int b)
throws IOException
Caveat: the effects of seek( )ing beyond the end of the eraf are undefined.
write in interface DataOutputb - _more_
IOException - if an I/O error occurrs.
public void writeBytes(byte[] b,
int off,
int len)
throws IOException
len bytes from an array to the eraf.
b - the array containing the data.off - the offset in the array to the data.len - the length of the data.
IOException - if an I/O error occurrs.
public void write(byte[] b)
throws IOException
b.length bytes from the specified byte array
starting at offset off to this eraf.
write in interface DataOutputb - the data.
IOException - if an I/O error occurs.
public void write(byte[] b,
int off,
int len)
throws IOException
len bytes from the specified byte array starting at
offset off to this eraf.
write in interface DataOutputb - the data.off - the start offset in the data.len - the number of bytes to write.
IOException - if an I/O error occurs.
public boolean readBoolean()
throws IOException
boolean from this eraf. This method reads a single
byte from the eraf. A value of 0 represents
false. Any other value represents true.
This method blocks until the byte is read, the end of the stream is
detected, or an exception is thrown.
readBoolean in interface DataInputboolean value read.
EOFException - if this eraf has reached the end.
IOException - if an I/O error occurs.
public byte readByte()
throws IOException
b, where
0 <= b <= 255, then the result
is:
(byte)(b)
This method blocks until the byte is read, the end of the stream is detected, or an exception is thrown.
readByte in interface DataInputbyte.
EOFException - if this eraf has reached the end.
IOException - if an I/O error occurs.
public int readUnsignedByte()
throws IOException
This method blocks until the byte is read, the end of the stream is detected, or an exception is thrown.
readUnsignedByte in interface DataInputEOFException - if this eraf has reached the end.
IOException - if an I/O error occurs.
public short readShort()
throws IOException
b1
and b2, where each of the two values is between
0 and 255, inclusive, then the result is
equal to:
(short)((b1 << 8) | b2)
This method blocks until the two bytes are read, the end of the stream is detected, or an exception is thrown.
readShort in interface DataInputEOFException - if this eraf reaches the end before reading two bytes.
IOException - if an I/O error occurs.
public void readShort(short[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public int readUnsignedShort()
throws IOException
b1
and b2, where
0 <= b1, b2 <= 255, then the
result is equal to:
(b1 << 8) | b2
This method blocks until the two bytes are read, the end of the stream is detected, or an exception is thrown.
readUnsignedShort in interface DataInputEOFException - if this eraf reaches the end before reading two bytes.
IOException - if an I/O error occurs.
public char readChar()
throws IOException
b1 and
b2, where
0 <= b1, b2 <= 255, then
the result is equal to:
(char)((b1 << 8) | b2)
This method blocks until the two bytes are read, the end of the stream is detected, or an exception is thrown.
readChar in interface DataInputEOFException - if this eraf reaches the end before reading two bytes.
IOException - if an I/O error occurs.
public int readInt()
throws IOException
b1,
b2, b3, and b4, where
0 <= b1, b2, b3, b4 <= 255,
then the result is equal to:
(b1 << 24) | (b2 << 16) + (b3 << 8) + b4
This method blocks until the four bytes are read, the end of the stream is detected, or an exception is thrown.
readInt in interface DataInputint.
EOFException - if this eraf reaches the end before reading four bytes.
IOException - if an I/O error occurs.
public long readUnsignedInt()
throws IOException
IOException
public int readIntUnbuffered(long pos)
throws IOException
pos - read a byte at this position
IOException
public void readInt(int[] pa,
int start,
int n)
throws IOException
b1,
b2, and b3, where
0 <= b1, b2, b3 <= 255, then
the result is equal to:
(b1 << 16) | (b2 << 8) + (b3 << 0)
This method blocks until the three bytes are read, the end of the stream is detected, or an exception is thrown.
pa - _more_start - _more_n - _more_
EOFException - if this eraf reaches the end before reading four bytes.
IOException - if an I/O error occurs.
public long readLong()
throws IOException
b1,
b2, b3, b4,
b5, b6, b7, and
b8, where:
0 <= b1, b2, b3, b4, b5, b6, b7, b8 <=255,
then the result is equal to:
((long) b1 << 56) + ((long) b2 << 48) + ((long) b3 << 40) + ((long) b4 << 32)
+ ((long) b5 << 24) + ((long) b6 << 16) + ((long) b7 << 8) + b8
This method blocks until the eight bytes are read, the end of the stream is detected, or an exception is thrown.
readLong in interface DataInputlong.
EOFException - if this eraf reaches the end before reading eight bytes.
IOException - if an I/O error occurs.
public void readLong(long[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public float readFloat()
throws IOException
float from this eraf. This method reads an
int value as if by the readInt method and
then converts that int to a float using the
intBitsToFloat method in class Float.
This method blocks until the four bytes are read, the end of the stream is detected, or an exception is thrown.
readFloat in interface DataInputfloat.
EOFException - if this eraf reaches the end before reading four bytes.
IOException - if an I/O error occurs.RandomAccessFile.readInt(),
Float.intBitsToFloat(int)
public void readFloat(float[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public double readDouble()
throws IOException
double from this eraf. This method reads a
long value as if by the readLong method and
then converts that long to a double using
the longBitsToDouble method in class Double.
This method blocks until the eight bytes are read, the end of the stream is detected, or an exception is thrown.
readDouble in interface DataInputdouble.
EOFException - if this eraf reaches the end before reading eight bytes.
IOException - if an I/O error occurs.RandomAccessFile.readLong(),
Double.longBitsToDouble(long)
public void readDouble(double[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public String readLine()
throws IOException
A line of text is terminated by a carriage-return character ('\r'),
a newline character ('\n'), a carriage-return
character immediately followed by a newline character, or the end of the
input stream. The line-terminating character(s), if any, are included as
part of the string returned.
This method blocks until a newline character is read, a carriage return and the byte following it are read (to see if it is a newline), the end of the stream is detected, or an exception is thrown.
readLine in interface DataInputIOException - if an I/O error occurs.
public String readUTF()
throws IOException
The first two bytes are read as if by readUnsignedShort.
This value gives the number of following bytes that are in the encoded
string, not the length of the resulting string. The following bytes are
then interpreted as bytes encoding characters in the UTF-8 format and are
converted into characters.
This method blocks until all the bytes are read, the end of the stream is detected, or an exception is thrown.
readUTF in interface DataInputEOFException - if this eraf reaches the end before reading all the bytes.
IOException - if an I/O error occurs.
UTFDataFormatException - if the bytes do not represent valid UTF-8 encoding of a
Unicode string.RandomAccessFile.readUnsignedShort()
public String readString(int nbytes)
throws IOException
nbytes - number of bytes to read
IOException
public void writeBoolean(boolean v)
throws IOException
boolean to the eraf as a 1-byte value. The value
true is written out as the value (byte)1;
the value false is written out as the value
(byte)0.
writeBoolean in interface DataOutputv - a boolean value to be written.
IOException - if an I/O error occurs.
public void writeBoolean(boolean[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public void writeByte(int v)
throws IOException
byte to the eraf as a 1-byte value.
writeByte in interface DataOutputv - a byte value to be written.
IOException - if an I/O error occurs.
public void writeShort(int v)
throws IOException
short to the eraf as two bytes, high byte first.
writeShort in interface DataOutputv - a short to be written.
IOException - if an I/O error occurs.
public void writeShort(short[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public void writeChar(int v)
throws IOException
char to the eraf as a 2-byte value, high byte
first.
writeChar in interface DataOutputv - a char value to be written.
IOException - if an I/O error occurs.
public void writeChar(char[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public void writeInt(int v)
throws IOException
int to the eraf as four bytes, high byte first.
writeInt in interface DataOutputv - an int to be written.
IOException - if an I/O error occurs.
public void writeInt(int[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public void writeLong(long v)
throws IOException
long to the eraf as eight bytes, high byte first.
writeLong in interface DataOutputv - a long to be written.
IOException - if an I/O error occurs.
public void writeLong(long[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public void writeFloat(float v)
throws IOException
int using the
floatToIntBits method in class Float, and
then writes that int value to the eraf as a 4-byte
quantity, high byte first.
writeFloat in interface DataOutputv - a float value to be written.
IOException - if an I/O error occurs.Float.floatToIntBits(float)
public void writeFloat(float[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public void writeDouble(double v)
throws IOException
long using the
doubleToLongBits method in class Double,
and then writes that long value to the eraf as an 8-byte
quantity, high byte first.
writeDouble in interface DataOutputv - a double value to be written.
IOException - if an I/O error occurs.Double.doubleToLongBits(double)
public void writeDouble(double[] pa,
int start,
int n)
throws IOException
pa - _more_start - _more_n - _more_
IOException - _more_
public void writeBytes(String s)
throws IOException
writeBytes in interface DataOutputs - a string of bytes to be written.
IOException - if an I/O error occurs.
public void writeBytes(char[] b,
int off,
int len)
throws IOException
b - a character array of bytes to be written.off - the index of the first character to write.len - the number of characters to write.
IOException - if an I/O error occurs.
public void writeChars(String s)
throws IOException
writeChar
method.
writeChars in interface DataOutputs - a String value to be written.
IOException - if an I/O error occurs.RandomAccessFile.writeChar(int)
public void writeUTF(String str)
throws IOException
First, two bytes are written to the eraf as if by the
writeShort method giving the number of bytes to follow.
This value is the number of bytes actually written out, not the length of
the string. Following the length, each character of the string is output,
in sequence, using the UTF-8 encoding for each character.
writeUTF in interface DataOutputstr - a string to be written.
IOException - if an I/O error occurs.public String toString()
toString in class Objectpublic void setCached(boolean cached)
cached - _more_public boolean isCached()
public void synch()
throws IOException
IOException - _more_public String getLocation()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||