Package ucar.unidata.io
Class RandomAccessFile
java.lang.Object
ucar.unidata.io.RandomAccessFile
- All Implemented Interfaces:
Closeable,DataInput,DataOutput,AutoCloseable,ucar.nc2.util.cache.FileCacheable
- Direct Known Subclasses:
InMemoryRandomAccessFile,MMapRandomAccessFile,RemoteRandomAccessFile
@NotThreadSafe
public class RandomAccessFile
extends Object
implements DataInput, DataOutput, ucar.nc2.util.cache.FileCacheable, Closeable
A class intended as drop-in replacement for java.io.RandomAccessFile, with some notable extensions:
- Buffered I/O: instances of this class realise substantial speed increases over * java.io.RandomAccessFile through the use of buffering.
- Read String methods support user-specified Charsets (default UTF-8).
- Support for both big and little endiannness on reads and write: users may specify the byte order for I/O operations.
- Support for distributed file access through the RandomAccessDirectory subclass.
By Russ Rew, based on BufferedRandomAccessFile by Alex McManus, based on Sun's source code for java.io.RandomAccessFile. For Alex McManus version from which this derives, see his Freeware Java Classes.
Must be thread confined - that is, can only be used by a single thread at a time..- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionRandomAccessFile(String location, String mode) Constructor, default buffer size.RandomAccessFile(String location, String mode, int bufferSize) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic RandomAccessFilestatic RandomAccessFilevoidclose()Close the file, and release any associated system resources.static voidstatic voidvoidflush()Copy the contents of the buffer to the disk.Deprecated.do not use.intGet the buffer sizestatic booleanDeprecated.do not use.static longDeprecated.do not use.static intDeprecated.do not use.longReturns the current position in the file, where the next read or write will occur.static ucar.nc2.util.cache.FileCacheIFlongGet the file location, or name.static intDeprecated.do not use.static longDeprecated.do not use.Deprecated.do not use.Allow access to the underlying java.io.RandomAccessFile.booleanReturns true if file pointer is at end of file.booleanReturns true if RandomAccessFile represents a directory structurelonglength()Get the length of the file.voidorder(int endian) Change the current endian mode.voidvoidDeprecated.do not useintread()Read a byte of data from the file, blocking until data is available.intread(byte[] b) Read up tob.length( )bytes into an array.intread(byte[] b, int off, int len) Read up tolenbytes into an array, at a specified offset.final booleanReads abooleanfrom this file.final bytereadByte()Reads a signed 8-bit value from this file.intreadBytes(byte[] b, int off, int len) Read up tolenbytes into an array, at a specified offset.byte[]readBytes(int count) Read fully count number of bytesfinal charreadChar()Reads a Unicode character from this file.final doubleReads adoublefrom this file.final voidreadDouble(double[] pa, int start, int n) Read an array of doublesfinal floatReads afloatfrom this file.final voidreadFloat(float[] pa, int start, int n) Read an array of floatsfinal voidreadFully(byte[] b) Readsb.lengthbytes from this file into the byte array.final voidreadFully(byte[] b, int off, int len) Reads exactlylenbytes from this file into the byte array.final intreadInt()Reads a signed 32-bit integer from this file.final voidreadInt(int[] pa, int start, int n) Read an array of intsfinal intreadIntUnbuffered(long pos) Read an integer at the given position, bypassing all buffering.final StringreadLine()Reads the next line of text from this file.Read the next line of text as the specified charset The charset parameter is an extension not implemented in java.io.RandomAccessFile.final longreadLong()Reads a signed 64-bit integer from this file.final voidreadLong(long[] pa, int start, int n) Read an array of longsfinal shortReads a signed 16-bit number from this file.final voidreadShort(short[] pa, int start, int n) Read an array of shortsreadString(int nbytes) Read a String of known length.readString(int nbytes, Charset charset) Read a String of known length as the specified charset.readStringMax(int nbytes) Read a String of max length, zero terminate.readStringMax(int nbytes, Charset charset) Read a String of max length as the specified charset, zero terminate.longreadToByteChannel(WritableByteChannel dest, long offset, long nbytes) Readnbytesbytes, at the specified file offset, send to a WritableByteChannel.final intReads an unsigned 8-bit number from this file.final intReads an unsigned 16-bit number from this file.final StringreadUTF()Reads in a string from this file.voidrelease()Deprecated.do not usebooleansearchForward(KMPMatch match, int maxBytes) Search forward from the current pos, looking for a match.voidseek(long pos) Set the position in the file for the next read or write.voidsetBufferSize(int bufferSize) Set the buffer size.static voidsetDebugAccess(boolean b) Deprecated.do not use.static voidsetDebugLeaks(boolean b) Deprecated.do not use.voidSet extendMode for truncated, yet valid files - old NetCDF code allowed this when NOFILL on, and user doesnt write all variables.voidsetFileCache(ucar.nc2.util.cache.FileCacheIF fileCache) Deprecated.do not usestatic voidsetGlobalFileCache(ucar.nc2.util.cache.FileCacheIF _cache) voidsetMinLength(long minLength) Make sure file is at least this long when its closed.static voidshutdown()intskipBytes(int n) Skips exactlynbytes of input.longskipBytes(long n) toString()Create a string representation of this object.voidunread()Unread the last byte read.voidwrite(byte[] b) Writesb.lengthbytes from the specified byte array starting at offsetoffto this file.voidwrite(byte[] b, int off, int len) Writeslenbytes from the specified byte array starting at offsetoffto this file.voidwrite(int b) Write a byte to the file.final voidwriteBoolean(boolean v) Writes abooleanto the file as a 1-byte value.final voidwriteBoolean(boolean[] pa, int start, int n) Write an array of booleansfinal voidwriteByte(int v) Writes abyteto the file as a 1-byte value.voidwriteBytes(byte[] b, int off, int len) Writelenbytes from an array to the file.final voidwriteBytes(char[] b, int off, int len) Writes the character array to the file as a sequence of bytes.final voidwriteBytes(String s) Writes the string to the file as a sequence of bytes.final voidwriteChar(char[] pa, int start, int n) Write an array of charsfinal voidwriteChar(char[] pa, int start, int n, int endian) Write an array of chars with the provided endianness.final voidWrite an array of chars with the provided byte order.final voidwriteChar(int v) Writes acharto the file as a 2-byte value, high byte first.voidwriteChar(int v, int endian) Writes acharto the file as a 2-byte value with the provided endianness.voidWrites acharto the file as a 2-byte value with the provided byte order.final voidwriteChars(String s) Writes a string to the file as a sequence of characters.voidwriteChars(String s, int endian) Writes a string to the file as a sequence of characters.voidwriteChars(String s, ByteOrder bo) Writes a string to the file as a sequence of characters.final voidwriteDouble(double v) Converts the double argument to alongusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the file as an 8-byte quantity, high byte first.final voidwriteDouble(double[] pa, int start, int n) Write an array of doublesfinal voidwriteDouble(double[] pa, int start, int n, int endian) Write an array of doubles with the provided endianness.final voidwriteDouble(double[] pa, int start, int n, ByteOrder bo) Write an array of doubles with the provided byte order.final voidwriteDouble(double v, int endian) Converts the double argument to alongusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the file as an 8-byte quantity, with the provided endianness.final voidwriteDouble(double v, ByteOrder bo) Converts the double argument to alongusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the file as an 8-byte quantity, with the provided byte order.final voidwriteFloat(float v) Converts the float argument to anintusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the file as a 4-byte quantity, high byte first.final voidwriteFloat(float[] pa, int start, int n) Write an array of floatsfinal voidwriteFloat(float[] pa, int start, int n, int endian) Write an array of floats with the provided endianness.final voidwriteFloat(float[] pa, int start, int n, ByteOrder bo) Write an array of floats with the provided byte order.final voidwriteFloat(float v, int endian) Converts the float argument to anintusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the file as a 4-byte quantity, with the provided endianness.final voidwriteFloat(float v, ByteOrder bo) Converts the float argument to anintusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the file as a 4-byte quantity, with the provided byte order.final voidwriteInt(int v) Writes anintto the file as four bytes, high byte first.final voidwriteInt(int[] pa, int start, int n) Write an array of intsfinal voidwriteInt(int[] pa, int start, int n, int endian) Write an array of ints with the provided endianness.final voidWrite an array of ints with the provided byte order.final voidwriteInt(int v, int endian) Writes anintto the file as four bytes with the provided endianness.final voidWrites anintto the file as four bytes with the provided byte order.final voidwriteLong(long v) Writes alongto the file as eight bytes, high byte first.final voidwriteLong(long[] pa, int start, int n) Write an array of longsfinal voidwriteLong(long[] pa, int start, int n, int endian) Write an array of longs with the provided endianness.final voidWrite an array of longs with the provided byte order.final voidwriteLong(long v, int endian) Writes alongto the file as eight bytes with the provided endianness.final voidWrites alongto the file as eight bytes with the provided byte order.final voidwriteShort(int v) Writes ashortto the file as two bytes, high byte first.final voidwriteShort(int v, int endian) Writes ashortto the file as two bytes with the provided endianness.voidwriteShort(int v, ByteOrder bo) Writes ashortto the file as two bytes with the provided byte order.final voidwriteShort(short[] pa, int start, int n) Write an array of shortsfinal voidwriteShort(short[] pa, int start, int n, int endian) Write an array of shorts with the provided endianness.final voidwriteShort(short[] pa, int start, int n, ByteOrder bo) Write an array of shorts with the provided byte order.final voidWrites a string to the file using UTF-8 encoding in a machine-independent manner.
-
Field Details
-
BIG_ENDIAN
public static final int BIG_ENDIAN- See Also:
-
LITTLE_ENDIAN
public static final int LITTLE_ENDIAN- See Also:
-
-
Constructor Details
-
RandomAccessFile
Constructor, default buffer size.- Parameters:
location- location of the filemode- same as for java.io.RandomAccessFile, usually "r" or "rw"- Throws:
IOException- on open error
-
RandomAccessFile
Constructor.- Parameters:
location- location of the filemode- same as for java.io.RandomAccessFilebufferSize- size of buffer to use.- Throws:
IOException- on open error
-
-
Method Details
-
getDebugLeaks
Deprecated.do not use. -
setDebugLeaks
Deprecated.do not use. -
getOpenFiles
Deprecated.do not use. -
getOpenFileCount
Deprecated.do not use. -
getMaxOpenFileCount
Deprecated.do not use. -
getAllFiles
Deprecated.do not use. -
setDebugAccess
Deprecated.do not use. -
getDebugNseeks
Deprecated.do not use. -
getDebugNbytes
Deprecated.do not use. -
enableDefaultGlobalFileCache
public static void enableDefaultGlobalFileCache() -
setGlobalFileCache
public static void setGlobalFileCache(ucar.nc2.util.cache.FileCacheIF _cache) -
getGlobalFileCache
public static ucar.nc2.util.cache.FileCacheIF getGlobalFileCache() -
acquire
- Throws:
IOException
-
acquire
- Throws:
IOException
-
eject
-
shutdown
public static void shutdown() -
getRandomAccessFile
Allow access to the underlying java.io.RandomAccessFile. WARNING! BROKEN ENCAPSOLATION, DO NOT USE. May change implementation in the future.- Returns:
- the underlying java.io.RandomAccessFile.
-
setBufferSize
public void setBufferSize(int bufferSize) Set the buffer size. If writing, call flush() first.- Parameters:
bufferSize- length in bytes
-
getBufferSize
public int getBufferSize()Get the buffer size- Returns:
- bufferSize length in bytes
-
close
Close the file, and release any associated system resources.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceucar.nc2.util.cache.FileCacheable- Throws:
IOException- if an I/O error occurrs.
-
release
Deprecated.do not use- Specified by:
releasein interfaceucar.nc2.util.cache.FileCacheable
-
reacquire
Deprecated.do not use- Specified by:
reacquirein interfaceucar.nc2.util.cache.FileCacheable
-
setFileCache
Deprecated.do not use- Specified by:
setFileCachein interfaceucar.nc2.util.cache.FileCacheable
-
getLastModified
public long getLastModified()- Specified by:
getLastModifiedin interfaceucar.nc2.util.cache.FileCacheable
-
isAtEndOfFile
public boolean isAtEndOfFile()Returns true if file pointer is at end of file. -
isDirectory
public boolean isDirectory()Returns true if RandomAccessFile represents a directory structure -
seek
Set the position in the file for the next read or write.- Parameters:
pos- the offset (in bytes) from the start of the file.- Throws:
IOException- if an I/O error occurrs.
-
getFilePointer
public long getFilePointer()Returns the current position in the file, where the next read or write will occur.- Returns:
- the offset from the start of the file in bytes.
-
getLocation
Get the file location, or name.- Specified by:
getLocationin interfaceucar.nc2.util.cache.FileCacheable- Returns:
- file location
-
length
Get the length of the file. The data in the buffer (which may not have been written the disk yet) is taken into account.- Returns:
- the length of the file in bytes.
- Throws:
IOException- if an I/O error occurrs.
-
order
public void order(int endian) Change the current endian mode. Subsequent reads of short, int, float, double, long, char will use this. Does not currently affect writes - ByteOrder must be explicitly specified on writes. Default values is BIG_ENDIAN. This method is an extension not implemented in java.io.RandomAccessFile.- Parameters:
endian- RandomAccessFile.BIG_ENDIAN or RandomAccessFile.LITTLE_ENDIAN
-
order
-
flush
Copy the contents of the buffer to the disk.- Throws:
IOException- if an I/O error occurs.
-
setMinLength
public void setMinLength(long minLength) Make sure file is at least this long when its closed. needed when not using fill mode, and not all data is written.- Parameters:
minLength- minimum length of the file.
-
setExtendMode
public void setExtendMode()Set extendMode for truncated, yet valid files - old NetCDF code allowed this when NOFILL on, and user doesnt write all variables. -
read
Read a byte of data from the file, blocking until data is available.- Returns:
- the next byte of data, or -1 if the end of the file is reached.
- Throws:
IOException- if an I/O error occurrs.
-
readBytes
Read up tolenbytes into an array, at a specified offset. This will block until at least one byte has been read.- Parameters:
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.- Returns:
- the actual number of bytes read, or -1 if there is not more data due to the end of the file being reached.
- Throws:
IOException- if an I/O error occurrs.
-
readToByteChannel
public long readToByteChannel(WritableByteChannel dest, long offset, long nbytes) throws IOException Readnbytesbytes, at the specified file offset, send to a WritableByteChannel. This will block until all bytes are read. This uses the underlying file channel directly, bypassing all user buffers.- Parameters:
dest- write to this WritableByteChannel.offset- the offset in the file where copying will start.nbytes- the number of bytes to read.- Returns:
- the actual number of bytes read and transfered
- Throws:
IOException- if an I/O error occurs.
-
read
Read up tolenbytes into an array, at a specified offset. This will block until at least one byte has been read.- Parameters:
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.- Returns:
- the actual number of bytes read, or -1 if there is not more data due to the end of the file being reached.
- Throws:
IOException- if an I/O error occurrs.
-
read
Read up tob.length( )bytes into an array. This will block until at least one byte has been read.- Parameters:
b- the byte array to receive the bytes.- Returns:
- the actual number of bytes read, or -1 if there is not more data due to the end of the file being reached.
- Throws:
IOException- if an I/O error occurrs.
-
readBytes
Read fully count number of bytes- Parameters:
count- how many bytes tp read- Returns:
- a byte array of length count, fully read in
- Throws:
IOException- if an I/O error occurrs.
-
readFully
Readsb.lengthbytes from this file into the byte array. This method reads repeatedly from the file 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.- Specified by:
readFullyin interfaceDataInput- Parameters:
b- the buffer into which the data is read.- Throws:
EOFException- if this file reaches the end before reading all the bytes.IOException- if an I/O error occurs.
-
readFully
Reads exactlylenbytes from this file into the byte array. This method reads repeatedly from the file 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.- Specified by:
readFullyin interfaceDataInput- Parameters:
b- the buffer into which the data is read.off- the start offset of the data.len- the number of bytes to read.- Throws:
EOFException- if this file reaches the end before reading all the bytes.IOException- if an I/O error occurs.
-
skipBytes
Skips exactlynbytes of input. This method blocks until all the bytes are skipped, the end of the stream is detected, or an exception is thrown.- Specified by:
skipBytesin interfaceDataInput- Parameters:
n- the number of bytes to be skipped.- Returns:
- the number of bytes skipped, which is always
n. - Throws:
EOFException- if this file reaches the end before skipping all the bytes.IOException- if an I/O error occurs.
-
skipBytes
- Throws:
IOException
-
unread
public void unread()Unread the last byte read. This method should not be used more than once between reading operations, or strange things might happen. -
write
Write a byte to the file. If the file has not been opened for writing, an IOException will be raised only when an attempt is made to write the buffer to the file. Caveat: the effects of seek( )ing beyond the end of the file are undefined.- Specified by:
writein interfaceDataOutput- Parameters:
b- write this byte- Throws:
IOException- if an I/O error occurrs.
-
writeBytes
Writelenbytes from an array to the file.- Parameters:
b- the array containing the data.off- the offset in the array to the data.len- the length of the data.- Throws:
IOException- if an I/O error occurrs.
-
write
Writesb.lengthbytes from the specified byte array starting at offsetoffto this file.- Specified by:
writein interfaceDataOutput- Parameters:
b- the data.- Throws:
IOException- if an I/O error occurs.
-
write
Writeslenbytes from the specified byte array starting at offsetoffto this file.- Specified by:
writein interfaceDataOutput- Parameters:
b- the data.off- the start offset in the data.len- the number of bytes to write.- Throws:
IOException- if an I/O error occurs.
-
readBoolean
Reads abooleanfrom this file. This method reads a single byte from the file. A value of0representsfalse. Any other value representstrue. This method blocks until the byte is read, the end of the stream is detected, or an exception is thrown.- Specified by:
readBooleanin interfaceDataInput- Returns:
- the
booleanvalue read. - Throws:
EOFException- if this file has reached the end.IOException- if an I/O error occurs.
-
readByte
Reads a signed 8-bit value from this file. This method reads a byte from the file. If the byte read isb, where0 <= b <= 255, then the result is:(byte)(b)- Specified by:
readBytein interfaceDataInput- Returns:
- the next byte of this file as a signed 8-bit
byte. - Throws:
EOFException- if this file has reached the end.IOException- if an I/O error occurs.
-
readUnsignedByte
Reads an unsigned 8-bit number from this file. This method reads a byte from this file and returns that byte. This method blocks until the byte is read, the end of the stream is detected, or an exception is thrown.- Specified by:
readUnsignedBytein interfaceDataInput- Returns:
- the next byte of this file, interpreted as an unsigned 8-bit number.
- Throws:
EOFException- if this file has reached the end.IOException- if an I/O error occurs.
-
readShort
Reads a signed 16-bit number from this file. The method reads 2 bytes from this file. If the two bytes read, in order, areb1andb2, where each of the two values is between0and255, inclusive, then the result is equal to:(short)((b1 << 8) | b2)- Specified by:
readShortin interfaceDataInput- Returns:
- the next two bytes of this file, interpreted as a signed 16-bit number.
- Throws:
EOFException- if this file reaches the end before reading two bytes.IOException- if an I/O error occurs.
-
readShort
Read an array of shorts- Parameters:
pa- read into this arraystart- starting at pa[start]n- read this many elements- Throws:
IOException- on read error
-
readUnsignedShort
Reads an unsigned 16-bit number from this file. This method reads two bytes from the file. If the bytes read, in order, areb1andb2, where0 <= b1, b2 <= 255, then the result is equal to:(b1 << 8) | b2- Specified by:
readUnsignedShortin interfaceDataInput- Returns:
- the next two bytes of this file, interpreted as an unsigned 16-bit integer.
- Throws:
EOFException- if this file reaches the end before reading two bytes.IOException- if an I/O error occurs.
-
readChar
Reads a Unicode character from this file. This method reads two bytes from the file. If the bytes read, in order, areb1andb2, where0 <= b1, b2 <= 255, then the result is equal to:(char)((b1 << 8) | b2)- Specified by:
readCharin interfaceDataInput- Returns:
- the next two bytes of this file as a Unicode character.
- Throws:
EOFException- if this file reaches the end before reading two bytes.IOException- if an I/O error occurs.
-
readInt
Reads a signed 32-bit integer from this file. This method reads 4 bytes from the file. If the bytes read, in order, areb1,b2,b3, andb4, where0 <= b1, b2, b3, b4 <= 255, then the result is equal to:(b1 << 24) | (b2 << 16) + (b3 << 8) + b4- Specified by:
readIntin interfaceDataInput- Returns:
- the next four bytes of this file, interpreted as an
int. - Throws:
EOFException- if this file reaches the end before reading four bytes.IOException- if an I/O error occurs.
-
readIntUnbuffered
Read an integer at the given position, bypassing all buffering.- Parameters:
pos- read a byte at this position- Returns:
- The int that was read
- Throws:
IOException- if an I/O error occurs.
-
readInt
Read an array of ints- Parameters:
pa- read into this arraystart- starting at pa[start]n- read this many elements- Throws:
IOException- on read error
-
readLong
Reads a signed 64-bit integer from this file. This method reads eight bytes from the file. If the bytes read, in order, areb1,b2,b3,b4,b5,b6,b7, andb8,where:0 <= b1, b2, b3, b4, b5, b6, b7, b8 <=255,
This method blocks until the eight bytes are read, the end of the stream is detected, or an exception is thrown.((long) b1 << 56) + ((long) b2 << 48) + ((long) b3 << 40) + ((long) b4 << 32) + ((long) b5 << 24) + ((long) b6 << 16) + ((long) b7 << 8) + b8- Specified by:
readLongin interfaceDataInput- Returns:
- the next eight bytes of this file, interpreted as a
long. - Throws:
EOFException- if this file reaches the end before reading eight bytes.IOException- if an I/O error occurs.
-
readLong
Read an array of longs- Parameters:
pa- read into this arraystart- starting at pa[start]n- read this many elements- Throws:
IOException- on read error
-
readFloat
Reads afloatfrom this file. This method reads anintvalue as if by thereadIntmethod and then converts thatintto afloatusing theintBitsToFloatmethod in classFloat. This method blocks until the four bytes are read, the end of the stream is detected, or an exception is thrown.- Specified by:
readFloatin interfaceDataInput- Returns:
- the next four bytes of this file, interpreted as a
float. - Throws:
EOFException- if this file reaches the end before reading four bytes.IOException- if an I/O error occurs.- See Also:
-
readFloat
Read an array of floats- Parameters:
pa- read into this arraystart- starting at pa[start]n- read this many elements- Throws:
IOException- on read error
-
readDouble
Reads adoublefrom this file. This method reads alongvalue as if by thereadLongmethod and then converts thatlongto adoubleusing thelongBitsToDoublemethod in classDouble. This method blocks until the eight bytes are read, the end of the stream is detected, or an exception is thrown.- Specified by:
readDoublein interfaceDataInput- Returns:
- the next eight bytes of this file, interpreted as a
double. - Throws:
EOFException- if this file reaches the end before reading eight bytes.IOException- if an I/O error occurs.- See Also:
-
readDouble
Read an array of doubles- Parameters:
pa- read into this arraystart- starting at pa[start]n- read this many elements- Throws:
IOException- on read error
-
readLine
Reads the next line of text from this file. This method successively reads bytes from the file, starting at the current file pointer, until it reaches a line terminator or the end of the file. Each byte is converted into a character by taking the byte's value for the lower eight bits of the character and setting the high eight bits of the character to zero. This method does not, therefore, support the full Unicode character set.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 file. Line-terminating characters are discarded and are not 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 file is reached, or an exception is thrown.
- Specified by:
readLinein interfaceDataInput- Returns:
- the next line of text from this file, or null if end of file is encountered before even one byte is read.
- Throws:
IOException- if an I/O error occurs.
-
readLine
Read the next line of text as the specified charset The charset parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
charset- - character encoding to use- Returns:
- the next line of text
- Throws:
IOException
-
readUTF
Reads in a string from this file. The string has been encoded using a modified UTF-8 format. The first two bytes are read as if byreadUnsignedShort. 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.- Specified by:
readUTFin interfaceDataInput- Returns:
- a Unicode string.
- Throws:
EOFException- if this file 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.- See Also:
-
readString
Read a String of known length.- Parameters:
nbytes- number of bytes to read- Returns:
- String wrapping the bytes.
- Throws:
IOException- if an I/O error occurs.
-
readString
Read a String of known length as the specified charset. The charset parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
nbytes- number of bytes to reSadcharset- thecharsetto be used to decode the bytes- Returns:
- String wrapping the bytes.
- Throws:
IOException- if an I/O error occurs.
-
readStringMax
Read a String of max length, zero terminate.- Parameters:
nbytes- number of bytes to read- Returns:
- String wrapping the bytes.
- Throws:
IOException- if an I/O error occurs.
-
readStringMax
Read a String of max length as the specified charset, zero terminate. The charset parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
nbytes- number of bytes to readcharset- thecharsetto be used to decode the bytes- Returns:
- String wrapping the bytes.
- Throws:
IOException- if an I/O error occurs.
-
writeBoolean
Writes abooleanto the file as a 1-byte value. The valuetrueis written out as the value(byte)1; the valuefalseis written out as the value(byte)0.- Specified by:
writeBooleanin interfaceDataOutput- Parameters:
v- abooleanvalue to be written.- Throws:
IOException- if an I/O error occurs.
-
writeBoolean
Write an array of booleans- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elements- Throws:
IOException- on read error
-
writeByte
Writes abyteto the file as a 1-byte value.- Specified by:
writeBytein interfaceDataOutput- Parameters:
v- abytevalue to be written.- Throws:
IOException- if an I/O error occurs.
-
writeShort
Writes ashortto the file as two bytes, high byte first.- Specified by:
writeShortin interfaceDataOutput- Parameters:
v- ashortto be written.- Throws:
IOException- if an I/O error occurs.
-
writeShort
Writes ashortto the file as two bytes with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- ashortto be written.endian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- if an I/O error occurs.
-
writeShort
Writes ashortto the file as two bytes with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- ashortto be written.bo- Endianness of the file as a ByteOrder- Throws:
IOException- if an I/O error occurs.
-
writeShort
Write an array of shorts- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- this number of elements- Throws:
IOException- on read error
-
writeShort
Write an array of shorts with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- this number of elementsendian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- on read error
-
writeShort
Write an array of shorts with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- this number of elementsbo- Endianness of the file as a ByteOrder- Throws:
IOException- on read error
-
writeChar
Writes acharto the file as a 2-byte value, high byte first.- Specified by:
writeCharin interfaceDataOutput- Parameters:
v- acharvalue to be written.- Throws:
IOException- if an I/O error occurs.
-
writeChar
Writes acharto the file as a 2-byte value with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- acharvalue to be written.endian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- if an I/O error occurs.
-
writeChar
Writes acharto the file as a 2-byte value with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- acharvalue to be written.bo- Endianness of the file as a ByteOrder- Throws:
IOException- if an I/O error occurs.
-
writeChar
Write an array of chars- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- this number of elements- Throws:
IOException- on read error
-
writeChar
Write an array of chars with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- this number of elementsendian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- on read error
-
writeChar
Write an array of chars with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- this number of elementsbo- Endianness of the file as a ByteOrder- Throws:
IOException- on read error
-
writeInt
Writes anintto the file as four bytes, high byte first.- Specified by:
writeIntin interfaceDataOutput- Parameters:
v- anintto be written.- Throws:
IOException- if an I/O error occurs.
-
writeInt
Writes anintto the file as four bytes with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- anintto be written.endian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- if an I/O error occurs.
-
writeInt
Writes anintto the file as four bytes with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- anintto be written.bo- Endianness of the file as a ByteOrder- Throws:
IOException- if an I/O error occurs.
-
writeInt
Write an array of ints- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elements- Throws:
IOException- on read error
-
writeInt
Write an array of ints with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsendian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- on read error
-
writeInt
Write an array of ints with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsbo- Endianness of the file as a ByteOrder- Throws:
IOException- on read error
-
writeLong
Writes alongto the file as eight bytes, high byte first.- Specified by:
writeLongin interfaceDataOutput- Parameters:
v- alongto be written.- Throws:
IOException- if an I/O error occurs.
-
writeLong
Writes alongto the file as eight bytes with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- alongto be written.endian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- if an I/O error occurs.
-
writeLong
Writes alongto the file as eight bytes with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- alongto be written.bo- Endianness of the file as a ByteOrder- Throws:
IOException- if an I/O error occurs.
-
writeLong
Write an array of longs- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elements- Throws:
IOException- on read error
-
writeLong
Write an array of longs with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsendian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- on read error
-
writeLong
Write an array of longs with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsbo- Endianness of the file as a ByteOrder- Throws:
IOException- on read error
-
writeFloat
Converts the float argument to anintusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the file as a 4-byte quantity, high byte first.- Specified by:
writeFloatin interfaceDataOutput- Parameters:
v- afloatvalue to be written.- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeFloat
Converts the float argument to anintusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the file as a 4-byte quantity, with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- afloatvalue to be written.endian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeFloat
Converts the float argument to anintusing thefloatToIntBitsmethod in classFloat, and then writes thatintvalue to the file as a 4-byte quantity, with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- afloatvalue to be written.bo- Endianness of the file as a ByteOrder- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeFloat
Write an array of floats- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elements- Throws:
IOException- on read error
-
writeFloat
Write an array of floats with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsendian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- on read error
-
writeFloat
Write an array of floats with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsbo- Endianness of the file as a ByteOrder- Throws:
IOException- on read error
-
writeDouble
Converts the double argument to alongusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the file as an 8-byte quantity, high byte first.- Specified by:
writeDoublein interfaceDataOutput- Parameters:
v- adoublevalue to be written.- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeDouble
Converts the double argument to alongusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the file as an 8-byte quantity, with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- adoublevalue to be written.endian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeDouble
Converts the double argument to alongusing thedoubleToLongBitsmethod in classDouble, and then writes thatlongvalue to the file as an 8-byte quantity, with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v- adoublevalue to be written.bo- Endianness of the file as a ByteOrder- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeDouble
Write an array of doubles- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elements- Throws:
IOException- on read error
-
writeDouble
Write an array of doubles with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsendian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- on read error
-
writeDouble
Write an array of doubles with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
pa- write from this arraystart- starting with this element in the arrayn- write this number of elementsbo- Endianness of the file as a ByteOrder- Throws:
IOException- on read error
-
writeBytes
Writes the string to the file as a sequence of bytes. Each character in the string is written out, in sequence, by discarding its high eight bits.- Specified by:
writeBytesin interfaceDataOutput- Parameters:
s- a string of bytes to be written.- Throws:
IOException- if an I/O error occurs.
-
writeBytes
Writes the character array to the file as a sequence of bytes. Each character in the string is written out, in sequence, by discarding its high eight bits.- Parameters:
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.- Throws:
IOException- if an I/O error occurs.
-
writeChars
Writes a string to the file as a sequence of characters. Each character is written to the data output stream as if by thewriteCharmethod.- Specified by:
writeCharsin interfaceDataOutput- Parameters:
s- aStringvalue to be written.- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeChars
Writes a string to the file as a sequence of characters. Each character is written to the data output stream as if by thewriteCharmethod, with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
s- aStringvalue to be written.endian- Endianness of the file as an int (0 = big endian, 1 = little endian)- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeChars
Writes a string to the file as a sequence of characters. Each character is written to the data output stream as if by thewriteCharmethod, with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
s- aStringvalue to be written.bo- Endianness of the file as a ByteOrder- Throws:
IOException- if an I/O error occurs.- See Also:
-
writeUTF
Writes a string to the file using UTF-8 encoding in a machine-independent manner. First, two bytes are written to the file as if by thewriteShortmethod 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.- Specified by:
writeUTFin interfaceDataOutput- Parameters:
str- a string to be written.- Throws:
IOException- if an I/O error occurs.
-
toString
Create a string representation of this object. -
searchForward
Search forward from the current pos, looking for a match.- Parameters:
match- the match to look for.maxBytes- maximum number of bytes to search. use -1 for all- Returns:
- true if found, file position will be at the start of the match.
- Throws:
IOException- on read error
-