Package ucar.unidata.io
Class RandomAccessFile
- java.lang.Object
-
- ucar.unidata.io.RandomAccessFile
-
- All Implemented Interfaces:
Closeable
,DataInput
,DataOutput
,AutoCloseable
,FileCacheable
- Direct Known Subclasses:
InMemoryRandomAccessFile
,MMapRandomAccessFile
,RandomAccessDirectory
,RemoteRandomAccessFile
@NotThreadSafe public class RandomAccessFile extends Object implements DataInput, DataOutput, 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:
DataInput
,DataOutput
,RandomAccessFile
-
-
Field Summary
Fields Modifier and Type Field Description protected static Set<String>
allFiles
static int
BIG_ENDIAN
protected boolean
bigEndian
The current endian (big or little) mode of the file.protected byte[]
buffer
The buffer used for reading the data.protected boolean
bufferModified
True if the data in the buffer has been modified.protected long
bufferStart
The offset in bytes of the start of the buffer, from the start of the file.protected long
dataEnd
The offset in bytes of the end of the data in the buffer, from the start of the file.protected int
dataSize
The size of the data stored in the buffer, in bytes.protected static boolean
debugAccess
protected static boolean
debugLeaks
protected static int
defaultBufferSize
protected boolean
endOfFile
True if we are at the end of the file.protected RandomAccessFile
file
The underlying java.io.RandomAccessFile.protected FileChannel
fileChannel
protected long
filePosition
The offset in bytes from the file start, of the next read or write operation.static int
LITTLE_ENDIAN
protected String
location
File locationprotected static List<String>
openFiles
protected boolean
readonly
The access mode of the file.protected static boolean
showOpen
protected static boolean
showRead
-
Constructor Summary
Constructors Modifier Constructor Description protected
RandomAccessFile(int bufferSize)
Constructor, for subclassesRandomAccessFile(String location, String mode)
Constructor, default buffer size.RandomAccessFile(String location, String mode, int bufferSize)
Constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static RandomAccessFile
acquire(String location)
static RandomAccessFile
acquire(String location, int buffer_size)
void
close()
Close the file, and release any associated system resources.static void
eject(String location)
static void
enableDefaultGlobalFileCache()
void
flush()
Copy the contents of the buffer to the disk.static List<String>
getAllFiles()
Deprecated.do not use.int
getBufferSize()
Get the buffer sizestatic boolean
getDebugLeaks()
Deprecated.do not use.static long
getDebugNbytes()
Deprecated.do not use.static int
getDebugNseeks()
Deprecated.do not use.long
getFilePointer()
Returns the current position in the file, where the next read or write will occur.static FileCacheIF
getGlobalFileCache()
long
getLastModified()
Returns the time that the underlying file(s) were last modified.String
getLocation()
Get the file location, or name.static int
getMaxOpenFileCount()
Deprecated.do not use.static long
getOpenFileCount()
Deprecated.do not use.static List<String>
getOpenFiles()
Deprecated.do not use.RandomAccessFile
getRandomAccessFile()
Allow access to the underlying java.io.RandomAccessFile.boolean
isAtEndOfFile()
Returns true if file pointer is at end of file.boolean
isDirectory()
Returns true if RandomAccessFile represents a directory structurelong
length()
Get the length of the file.void
order(int endian)
Change the current endian mode.void
order(ByteOrder bo)
void
reacquire()
Deprecated.do not useint
read()
Read a byte of data from the file, blocking until data is available.int
read(byte[] b)
Read up tob.length( )
bytes into an array.int
read(byte[] b, int off, int len)
Read up tolen
bytes into an array, at a specified offset.protected int
read_(long pos, byte[] b, int offset, int len)
Read directly from file, without going through the buffer.boolean
readBoolean()
Reads aboolean
from this file.protected void
readBuffer(long pos)
byte
readByte()
Reads a signed 8-bit value from this file.int
readBytes(byte[] b, int off, int len)
Read up tolen
bytes into an array, at a specified offset.byte[]
readBytes(int count)
Read fully count number of byteschar
readChar()
Reads a Unicode character from this file.double
readDouble()
Reads adouble
from this file.void
readDouble(double[] pa, int start, int n)
Read an array of doublesfloat
readFloat()
Reads afloat
from this file.void
readFloat(float[] pa, int start, int n)
Read an array of floatsvoid
readFully(byte[] b)
Readsb.length
bytes from this file into the byte array.void
readFully(byte[] b, int off, int len)
Reads exactlylen
bytes from this file into the byte array.int
readInt()
Reads a signed 32-bit integer from this file.void
readInt(int[] pa, int start, int n)
Read an array of intsint
readIntUnbuffered(long pos)
Read an integer at the given position, bypassing all buffering.String
readLine()
Reads the next line of text from this file.String
readLine(Charset charset)
Read the next line of text as the specified charset The charset parameter is an extension not implemented in java.io.RandomAccessFile.long
readLong()
Reads a signed 64-bit integer from this file.void
readLong(long[] pa, int start, int n)
Read an array of longsshort
readShort()
Reads a signed 16-bit number from this file.void
readShort(short[] pa, int start, int n)
Read an array of shortsString
readString(int nbytes)
Read a String of known length.String
readString(int nbytes, Charset charset)
Read a String of known length as the specified charset.String
readStringMax(int nbytes)
Read a String of max length, zero terminate.String
readStringMax(int nbytes, Charset charset)
Read a String of max length as the specified charset, zero terminate.long
readToByteChannel(WritableByteChannel dest, long offset, long nbytes)
Readnbytes
bytes, at the specified file offset, send to a WritableByteChannel.int
readUnsignedByte()
Reads an unsigned 8-bit number from this file.int
readUnsignedShort()
Reads an unsigned 16-bit number from this file.String
readUTF()
Reads in a string from this file.void
release()
Deprecated.do not useboolean
searchForward(KMPMatch match, int maxBytes)
Search forward from the current pos, looking for a match.void
seek(long pos)
Set the position in the file for the next read or write.void
setBufferSize(int bufferSize)
Set the buffer size.static void
setDebugAccess(boolean b)
Deprecated.do not use.static void
setDebugLeaks(boolean b)
Deprecated.do not use.void
setExtendMode()
Set extendMode for truncated, yet valid files - old NetCDF code allowed this when NOFILL on, and user doesnt write all variables.void
setFileCache(FileCacheIF fileCache)
Deprecated.do not usestatic void
setGlobalFileCache(FileCacheIF _cache)
void
setMinLength(long minLength)
Make sure file is at least this long when its closed.static void
shutdown()
int
skipBytes(int n)
Skips exactlyn
bytes of input.long
skipBytes(long n)
String
toString()
Create a string representation of this object.void
unread()
Unread the last byte read.void
write(byte[] b)
Writesb.length
bytes from the specified byte array starting at offsetoff
to this file.void
write(byte[] b, int off, int len)
Writeslen
bytes from the specified byte array starting at offsetoff
to this file.void
write(int b)
Write a byte to the file.void
writeBoolean(boolean v)
Writes aboolean
to the file as a 1-byte value.void
writeBoolean(boolean[] pa, int start, int n)
Write an array of booleansvoid
writeByte(int v)
Writes abyte
to the file as a 1-byte value.void
writeBytes(byte[] b, int off, int len)
Writelen
bytes from an array to the file.void
writeBytes(char[] b, int off, int len)
Writes the character array to the file as a sequence of bytes.void
writeBytes(String s)
Writes the string to the file as a sequence of bytes.void
writeChar(char[] pa, int start, int n)
Write an array of charsvoid
writeChar(char[] pa, int start, int n, int endian)
Write an array of chars with the provided endianness.void
writeChar(char[] pa, int start, int n, ByteOrder bo)
Write an array of chars with the provided byte order.void
writeChar(int v)
Writes achar
to the file as a 2-byte value, high byte first.void
writeChar(int v, int endian)
Writes achar
to the file as a 2-byte value with the provided endianness.void
writeChar(int v, ByteOrder bo)
Writes achar
to the file as a 2-byte value with the provided byte order.void
writeChars(String s)
Writes a string to the file as a sequence of characters.void
writeChars(String s, int endian)
Writes a string to the file as a sequence of characters.void
writeChars(String s, ByteOrder bo)
Writes a string to the file as a sequence of characters.void
writeDouble(double v)
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the file as an 8-byte quantity, high byte first.void
writeDouble(double[] pa, int start, int n)
Write an array of doublesvoid
writeDouble(double[] pa, int start, int n, int endian)
Write an array of doubles with the provided endianness.void
writeDouble(double[] pa, int start, int n, ByteOrder bo)
Write an array of doubles with the provided byte order.void
writeDouble(double v, int endian)
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the file as an 8-byte quantity, with the provided endianness.void
writeDouble(double v, ByteOrder bo)
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the file as an 8-byte quantity, with the provided byte order.void
writeFloat(float v)
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the file as a 4-byte quantity, high byte first.void
writeFloat(float[] pa, int start, int n)
Write an array of floatsvoid
writeFloat(float[] pa, int start, int n, int endian)
Write an array of floats with the provided endianness.void
writeFloat(float[] pa, int start, int n, ByteOrder bo)
Write an array of floats with the provided byte order.void
writeFloat(float v, int endian)
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the file as a 4-byte quantity, with the provided endianness.void
writeFloat(float v, ByteOrder bo)
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the file as a 4-byte quantity, with the provided byte order.void
writeInt(int v)
Writes anint
to the file as four bytes, high byte first.void
writeInt(int[] pa, int start, int n)
Write an array of intsvoid
writeInt(int[] pa, int start, int n, int endian)
Write an array of ints with the provided endianness.void
writeInt(int[] pa, int start, int n, ByteOrder bo)
Write an array of ints with the provided byte order.void
writeInt(int v, int endian)
Writes anint
to the file as four bytes with the provided endianness.void
writeInt(int v, ByteOrder bo)
Writes anint
to the file as four bytes with the provided byte order.void
writeLong(long v)
Writes along
to the file as eight bytes, high byte first.void
writeLong(long[] pa, int start, int n)
Write an array of longsvoid
writeLong(long[] pa, int start, int n, int endian)
Write an array of longs with the provided endianness.void
writeLong(long[] pa, int start, int n, ByteOrder bo)
Write an array of longs with the provided byte order.void
writeLong(long v, int endian)
Writes along
to the file as eight bytes with the provided endianness.void
writeLong(long v, ByteOrder bo)
Writes along
to the file as eight bytes with the provided byte order.void
writeShort(int v)
Writes ashort
to the file as two bytes, high byte first.void
writeShort(int v, int endian)
Writes ashort
to the file as two bytes with the provided endianness.void
writeShort(int v, ByteOrder bo)
Writes ashort
to the file as two bytes with the provided byte order.void
writeShort(short[] pa, int start, int n)
Write an array of shortsvoid
writeShort(short[] pa, int start, int n, int endian)
Write an array of shorts with the provided endianness.void
writeShort(short[] pa, int start, int n, ByteOrder bo)
Write an array of shorts with the provided byte order.void
writeUTF(String str)
Writes a string to the file using UTF-8 encoding in a machine-independent manner.
-
-
-
Field Detail
-
BIG_ENDIAN
public static final int BIG_ENDIAN
- See Also:
- Constant Field Values
-
LITTLE_ENDIAN
public static final int LITTLE_ENDIAN
- See Also:
- Constant Field Values
-
defaultBufferSize
protected static final int defaultBufferSize
- See Also:
- Constant Field Values
-
debugLeaks
protected static boolean debugLeaks
-
debugAccess
protected static boolean debugAccess
-
showOpen
protected static boolean showOpen
-
showRead
protected static boolean showRead
-
location
protected String location
File location
-
file
protected RandomAccessFile file
The underlying java.io.RandomAccessFile.
-
fileChannel
protected FileChannel fileChannel
-
filePosition
protected long filePosition
The offset in bytes from the file start, of the next read or write operation.
-
buffer
protected byte[] buffer
The buffer used for reading the data.
-
bufferStart
protected long bufferStart
The offset in bytes of the start of the buffer, from the start of the file.
-
dataEnd
protected long dataEnd
The offset in bytes of the end of the data in the buffer, from the start of the file. This can be calculated frombufferStart + dataSize
, but it is cached to speed up the read( ) method.
-
dataSize
protected int dataSize
The size of the data stored in the buffer, in bytes. This may be less than the size of the buffer.
-
endOfFile
protected boolean endOfFile
True if we are at the end of the file.
-
readonly
protected boolean readonly
The access mode of the file.
-
bigEndian
protected boolean bigEndian
The current endian (big or little) mode of the file.
-
bufferModified
protected boolean bufferModified
True if the data in the buffer has been modified.
-
-
Constructor Detail
-
RandomAccessFile
protected RandomAccessFile(int bufferSize)
Constructor, for subclasses- Parameters:
bufferSize
- size of read buffer
-
RandomAccessFile
public RandomAccessFile(String location, String mode) throws IOException
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
public RandomAccessFile(String location, String mode, int bufferSize) throws IOException
Constructor.- Parameters:
location
- location of the filemode
- same as for java.io.RandomAccessFilebufferSize
- size of buffer to use.- Throws:
IOException
- on open error
-
-
Method Detail
-
getDebugLeaks
@Deprecated public static boolean getDebugLeaks()
Deprecated.do not use.
-
setDebugLeaks
@Deprecated public static void setDebugLeaks(boolean b)
Deprecated.do not use.
-
getOpenFiles
@Deprecated public static List<String> getOpenFiles()
Deprecated.do not use.
-
getOpenFileCount
@Deprecated public static long getOpenFileCount()
Deprecated.do not use.
-
getMaxOpenFileCount
@Deprecated public static int getMaxOpenFileCount()
Deprecated.do not use.
-
getAllFiles
@Deprecated public static List<String> getAllFiles()
Deprecated.do not use.
-
setDebugAccess
@Deprecated public static void setDebugAccess(boolean b)
Deprecated.do not use.
-
getDebugNseeks
@Deprecated public static int getDebugNseeks()
Deprecated.do not use.
-
getDebugNbytes
@Deprecated public static long getDebugNbytes()
Deprecated.do not use.
-
enableDefaultGlobalFileCache
public static void enableDefaultGlobalFileCache()
-
setGlobalFileCache
public static void setGlobalFileCache(FileCacheIF _cache)
-
getGlobalFileCache
public static FileCacheIF getGlobalFileCache()
-
acquire
public static RandomAccessFile acquire(String location) throws IOException
- Throws:
IOException
-
acquire
public static RandomAccessFile acquire(String location, int buffer_size) throws IOException
- Throws:
IOException
-
eject
public static void eject(String location)
-
shutdown
public static void shutdown()
-
getRandomAccessFile
public RandomAccessFile 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
public void close() throws IOException
Close the file, and release any associated system resources.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceFileCacheable
- Throws:
IOException
- if an I/O error occurrs.
-
release
@Deprecated public void release()
Deprecated.do not useDescription copied from interface:FileCacheable
Release any system resources like file handles. Optional, implement only if you are able to reacquire. Used when object is made inactive in cache.- Specified by:
release
in interfaceFileCacheable
-
reacquire
@Deprecated public void reacquire()
Deprecated.do not useDescription copied from interface:FileCacheable
Reacquire any resources like file handles Used when reactivating in cache.- Specified by:
reacquire
in interfaceFileCacheable
-
setFileCache
@Deprecated public void setFileCache(FileCacheIF fileCache)
Deprecated.do not useDescription copied from interface:FileCacheable
If the FileCache is not null, FileCacheable.close() must call FileCache.release()public synchronized void close() throws java.io.IOException { if (cache != null) { if (cache.release(this)) return; } reallyClose(); }
- Specified by:
setFileCache
in interfaceFileCacheable
- Parameters:
fileCache
- must store this, use it on close as above.
-
getLastModified
public long getLastModified()
Description copied from interface:FileCacheable
Returns the time that the underlying file(s) were last modified. If they've changed since they were stored in the cache, they will be closed and reopened withFileFactory
.- Specified by:
getLastModified
in interfaceFileCacheable
- Returns:
- a
long
value representing the time the file(s) were last modified or0L
if the last-modified time couldn't be determined for any reason.
-
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
public void seek(long pos) throws IOException
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.
-
readBuffer
protected void readBuffer(long pos) throws IOException
- Throws:
IOException
-
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
public String getLocation()
Get the file location, or name.- Specified by:
getLocation
in interfaceFileCacheable
- Returns:
- file location
-
length
public long length() throws IOException
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
public void order(ByteOrder bo)
-
flush
public void flush() throws IOException
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
public int read() throws IOException
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
public int readBytes(byte[] b, int off, int len) throws IOException
Read up tolen
bytes 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
Readnbytes
bytes, 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_
protected int read_(long pos, byte[] b, int offset, int len) throws IOException
Read directly from file, without going through the buffer. All reading goes through here or readToByteChannel;- Parameters:
pos
- start here in the fileb
- put data into this bufferoffset
- buffer offsetlen
- this number of bytes- Returns:
- actual number of bytes read, -1 if underlying random access file was closed
- Throws:
IOException
- on io error
-
read
public int read(byte[] b, int off, int len) throws IOException
Read up tolen
bytes 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
public int read(byte[] b) throws IOException
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
public byte[] readBytes(int count) throws IOException
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
public final void readFully(byte[] b) throws IOException
Readsb.length
bytes 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:
readFully
in 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
public final void readFully(byte[] b, int off, int len) throws IOException
Reads exactlylen
bytes 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:
readFully
in 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
public int skipBytes(int n) throws IOException
Skips exactlyn
bytes 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:
skipBytes
in 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
public long skipBytes(long n) throws IOException
- 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
public void write(int b) throws IOException
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:
write
in interfaceDataOutput
- Parameters:
b
- write this byte- Throws:
IOException
- if an I/O error occurrs.
-
writeBytes
public void writeBytes(byte[] b, int off, int len) throws IOException
Writelen
bytes 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
public void write(byte[] b) throws IOException
Writesb.length
bytes from the specified byte array starting at offsetoff
to this file.- Specified by:
write
in interfaceDataOutput
- Parameters:
b
- the data.- Throws:
IOException
- if an I/O error occurs.
-
write
public void write(byte[] b, int off, int len) throws IOException
Writeslen
bytes from the specified byte array starting at offsetoff
to this file.- Specified by:
write
in 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
public final boolean readBoolean() throws IOException
Reads aboolean
from this file. This method reads a single byte from the file. A value of0
representsfalse
. 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:
readBoolean
in interfaceDataInput
- Returns:
- the
boolean
value read. - Throws:
EOFException
- if this file has reached the end.IOException
- if an I/O error occurs.
-
readByte
public final byte readByte() throws IOException
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:
readByte
in 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
public final int readUnsignedByte() throws IOException
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:
readUnsignedByte
in 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
public final short readShort() throws IOException
Reads a signed 16-bit number from this file. The method reads 2 bytes from this file. If the two bytes read, in order, areb1
andb2
, where each of the two values is between0
and255
, inclusive, then the result is equal to:(short)((b1 << 8) | b2)
- Specified by:
readShort
in 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
public final void readShort(short[] pa, int start, int n) throws IOException
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
public final int readUnsignedShort() throws IOException
Reads an unsigned 16-bit number from this file. This method reads two bytes from the file. If the bytes read, in order, areb1
andb2
, where0 <= b1, b2 <= 255
, then the result is equal to:(b1 << 8) | b2
- Specified by:
readUnsignedShort
in 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
public final char readChar() throws IOException
Reads a Unicode character from this file. This method reads two bytes from the file. If the bytes read, in order, areb1
andb2
, where0 <= b1, b2 <= 255
, then the result is equal to:(char)((b1 << 8) | b2)
- Specified by:
readChar
in 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
public final int readInt() throws IOException
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:
readInt
in 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
public final int readIntUnbuffered(long pos) throws IOException
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
public final void readInt(int[] pa, int start, int n) throws IOException
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
public final long readLong() throws IOException
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,
((long) b1 << 56) + ((long) b2 << 48) + ((long) b3 << 40) + ((long) b4 << 32) + ((long) b5 << 24) + ((long) b6 << 16) + ((long) b7 << 8) + b8
- Specified by:
readLong
in 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
public final void readLong(long[] pa, int start, int n) throws IOException
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
public final float readFloat() throws IOException
Reads afloat
from this file. This method reads anint
value as if by thereadInt
method and then converts thatint
to afloat
using theintBitsToFloat
method 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:
readFloat
in 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:
RandomAccessFile.readInt()
,Float.intBitsToFloat(int)
-
readFloat
public final void readFloat(float[] pa, int start, int n) throws IOException
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
public final double readDouble() throws IOException
Reads adouble
from this file. This method reads along
value as if by thereadLong
method and then converts thatlong
to adouble
using thelongBitsToDouble
method 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:
readDouble
in 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:
RandomAccessFile.readLong()
,Double.longBitsToDouble(long)
-
readDouble
public final void readDouble(double[] pa, int start, int n) throws IOException
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
public final String readLine() throws IOException
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:
readLine
in 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
public String readLine(Charset charset) throws IOException
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
public final String readUTF() throws IOException
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:
readUTF
in 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:
RandomAccessFile.readUnsignedShort()
-
readString
public String readString(int nbytes) throws IOException
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
public String readString(int nbytes, Charset charset) throws IOException
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
- thecharset
to be used to decode the bytes- Returns:
- String wrapping the bytes.
- Throws:
IOException
- if an I/O error occurs.
-
readStringMax
public String readStringMax(int nbytes) throws IOException
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
public String readStringMax(int nbytes, Charset charset) throws IOException
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
- thecharset
to be used to decode the bytes- Returns:
- String wrapping the bytes.
- Throws:
IOException
- if an I/O error occurs.
-
writeBoolean
public final void writeBoolean(boolean v) throws IOException
Writes aboolean
to the file as a 1-byte value. The valuetrue
is written out as the value(byte)1
; the valuefalse
is written out as the value(byte)0
.- Specified by:
writeBoolean
in interfaceDataOutput
- Parameters:
v
- aboolean
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeBoolean
public final void writeBoolean(boolean[] pa, int start, int n) throws IOException
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
public final void writeByte(int v) throws IOException
Writes abyte
to the file as a 1-byte value.- Specified by:
writeByte
in interfaceDataOutput
- Parameters:
v
- abyte
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeShort
public final void writeShort(int v) throws IOException
Writes ashort
to the file as two bytes, high byte first.- Specified by:
writeShort
in interfaceDataOutput
- Parameters:
v
- ashort
to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeShort
public final void writeShort(int v, int endian) throws IOException
Writes ashort
to the file as two bytes with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v
- ashort
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.
-
writeShort
public void writeShort(int v, ByteOrder bo) throws IOException
Writes ashort
to 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
- ashort
to be written.bo
- Endianness of the file as a ByteOrder- Throws:
IOException
- if an I/O error occurs.
-
writeShort
public final void writeShort(short[] pa, int start, int n) throws IOException
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
public final void writeShort(short[] pa, int start, int n, int endian) throws IOException
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
public final void writeShort(short[] pa, int start, int n, ByteOrder bo) throws IOException
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
public final void writeChar(int v) throws IOException
Writes achar
to the file as a 2-byte value, high byte first.- Specified by:
writeChar
in interfaceDataOutput
- Parameters:
v
- achar
value to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeChar
public void writeChar(int v, int endian) throws IOException
Writes achar
to 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
- achar
value 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
public void writeChar(int v, ByteOrder bo) throws IOException
Writes achar
to 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
- achar
value to be written.bo
- Endianness of the file as a ByteOrder- Throws:
IOException
- if an I/O error occurs.
-
writeChar
public final void writeChar(char[] pa, int start, int n) throws IOException
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
public final void writeChar(char[] pa, int start, int n, int endian) throws IOException
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
public final void writeChar(char[] pa, int start, int n, ByteOrder bo) throws IOException
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
public final void writeInt(int v) throws IOException
Writes anint
to the file as four bytes, high byte first.- Specified by:
writeInt
in interfaceDataOutput
- Parameters:
v
- anint
to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeInt
public final void writeInt(int v, int endian) throws IOException
Writes anint
to the file as four bytes with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v
- anint
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.
-
writeInt
public final void writeInt(int v, ByteOrder bo) throws IOException
Writes anint
to 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
- anint
to be written.bo
- Endianness of the file as a ByteOrder- Throws:
IOException
- if an I/O error occurs.
-
writeInt
public final void writeInt(int[] pa, int start, int n) throws IOException
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
public final void writeInt(int[] pa, int start, int n, int endian) throws IOException
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
public final void writeInt(int[] pa, int start, int n, ByteOrder bo) throws IOException
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
public final void writeLong(long v) throws IOException
Writes along
to the file as eight bytes, high byte first.- Specified by:
writeLong
in interfaceDataOutput
- Parameters:
v
- along
to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeLong
public final void writeLong(long v, int endian) throws IOException
Writes along
to the file as eight bytes with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
v
- along
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.
-
writeLong
public final void writeLong(long v, ByteOrder bo) throws IOException
Writes along
to 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
- along
to be written.bo
- Endianness of the file as a ByteOrder- Throws:
IOException
- if an I/O error occurs.
-
writeLong
public final void writeLong(long[] pa, int start, int n) throws IOException
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
public final void writeLong(long[] pa, int start, int n, int endian) throws IOException
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
public final void writeLong(long[] pa, int start, int n, ByteOrder bo) throws IOException
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
public final void writeFloat(float v) throws IOException
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value to the file as a 4-byte quantity, high byte first.- Specified by:
writeFloat
in interfaceDataOutput
- Parameters:
v
- afloat
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
Float.floatToIntBits(float)
-
writeFloat
public final void writeFloat(float v, int endian) throws IOException
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value 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
- afloat
value 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:
Float.floatToIntBits(float)
-
writeFloat
public final void writeFloat(float v, ByteOrder bo) throws IOException
Converts the float argument to anint
using thefloatToIntBits
method in classFloat
, and then writes thatint
value 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
- afloat
value to be written.bo
- Endianness of the file as a ByteOrder- Throws:
IOException
- if an I/O error occurs.- See Also:
Float.floatToIntBits(float)
-
writeFloat
public final void writeFloat(float[] pa, int start, int n) throws IOException
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
public final void writeFloat(float[] pa, int start, int n, int endian) throws IOException
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
public final void writeFloat(float[] pa, int start, int n, ByteOrder bo) throws IOException
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
public final void writeDouble(double v) throws IOException
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value to the file as an 8-byte quantity, high byte first.- Specified by:
writeDouble
in interfaceDataOutput
- Parameters:
v
- adouble
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
Double.doubleToLongBits(double)
-
writeDouble
public final void writeDouble(double v, int endian) throws IOException
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value 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
- adouble
value 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:
Double.doubleToLongBits(double)
-
writeDouble
public final void writeDouble(double v, ByteOrder bo) throws IOException
Converts the double argument to along
using thedoubleToLongBits
method in classDouble
, and then writes thatlong
value 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
- adouble
value to be written.bo
- Endianness of the file as a ByteOrder- Throws:
IOException
- if an I/O error occurs.- See Also:
Double.doubleToLongBits(double)
-
writeDouble
public final void writeDouble(double[] pa, int start, int n) throws IOException
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
public final void writeDouble(double[] pa, int start, int n, int endian) throws IOException
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
public final void writeDouble(double[] pa, int start, int n, ByteOrder bo) throws IOException
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
public final void writeBytes(String s) throws IOException
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:
writeBytes
in interfaceDataOutput
- Parameters:
s
- a string of bytes to be written.- Throws:
IOException
- if an I/O error occurs.
-
writeBytes
public final void writeBytes(char[] b, int off, int len) throws IOException
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
public final void writeChars(String s) throws IOException
Writes a string to the file as a sequence of characters. Each character is written to the data output stream as if by thewriteChar
method.- Specified by:
writeChars
in interfaceDataOutput
- Parameters:
s
- aString
value to be written.- Throws:
IOException
- if an I/O error occurs.- See Also:
RandomAccessFile.writeChar(int)
-
writeChars
public void writeChars(String s, int endian) throws IOException
Writes a string to the file as a sequence of characters. Each character is written to the data output stream as if by thewriteChar
method, with the provided endianness. The endian parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
s
- aString
value 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:
RandomAccessFile.writeChar(int)
-
writeChars
public void writeChars(String s, ByteOrder bo) throws IOException
Writes a string to the file as a sequence of characters. Each character is written to the data output stream as if by thewriteChar
method, with the provided byte order. The byte order parameter is an extension not implemented in java.io.RandomAccessFile.- Parameters:
s
- aString
value to be written.bo
- Endianness of the file as a ByteOrder- Throws:
IOException
- if an I/O error occurs.- See Also:
RandomAccessFile.writeChar(int)
-
writeUTF
public final void writeUTF(String str) throws IOException
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 thewriteShort
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.- Specified by:
writeUTF
in interfaceDataOutput
- Parameters:
str
- a string to be written.- Throws:
IOException
- if an I/O error occurs.
-
toString
public String toString()
Create a string representation of this object.
-
searchForward
public boolean searchForward(KMPMatch match, int maxBytes) throws IOException
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
-
-