public class RamFileRandomAccessContent extends java.lang.Object implements RandomAccessContent
Modifier and Type | Field and Description |
---|---|
private byte[] |
buf
Buffer
|
private byte[] |
buffer1
buffer
|
private byte[] |
buffer2
buffer
|
private byte[] |
buffer4
buffer
|
private byte[] |
buffer8
buffer
|
private RamFileObject |
file
File
|
protected int |
filePointer
File Pointer
|
private java.io.InputStream |
rafis |
Constructor and Description |
---|
RamFileRandomAccessContent(RamFileObject file,
RandomAccessMode mode) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this random access file stream and releases any system resources associated with the stream.
|
long |
getFilePointer()
Returns the current offset in this file.
|
java.io.InputStream |
getInputStream()
Get the input stream.
|
private int |
getLeftBytes() |
long |
length()
Returns the length of this file.
|
boolean |
readBoolean() |
byte |
readByte() |
char |
readChar() |
double |
readDouble() |
float |
readFloat() |
void |
readFully(byte[] b) |
void |
readFully(byte[] b,
int off,
int len) |
int |
readInt() |
java.lang.String |
readLine() |
long |
readLong() |
short |
readShort() |
int |
readUnsignedByte() |
int |
readUnsignedShort() |
java.lang.String |
readUTF() |
void |
seek(long pos)
Sets the file-pointer offset, measured from the beginning of this file, at which the next read or write occurs.
|
void |
setLength(long newLength)
Sets the length of this content.
|
int |
skipBytes(int n) |
static byte[] |
toBytes(long n,
byte[] b)
Build a 8-byte array from a long.
|
static long |
toLong(byte[] b)
Build a long from first 8 bytes of the array.
|
static short |
toShort(byte[] b)
Build a short from first 2 bytes of the array.
|
static int |
toUnsignedShort(byte[] b)
Build a short from first 2 bytes of the array.
|
void |
write(byte[] b) |
void |
write(byte[] b,
int off,
int len) |
void |
write(int b) |
void |
writeBoolean(boolean v) |
void |
writeByte(int i) |
void |
writeBytes(java.lang.String s) |
void |
writeChar(int v) |
void |
writeChars(java.lang.String s) |
void |
writeDouble(double v) |
void |
writeFloat(float v) |
void |
writeInt(int v) |
void |
writeLong(long v) |
void |
writeShort(int v) |
void |
writeUTF(java.lang.String str) |
protected int filePointer
private byte[] buf
private final byte[] buffer8
private final byte[] buffer4
private final byte[] buffer2
private final byte[] buffer1
private final RamFileObject file
private final java.io.InputStream rafis
public RamFileRandomAccessContent(RamFileObject file, RandomAccessMode mode)
file
- The file to access.mode
- The access mode.public long getFilePointer() throws java.io.IOException
RandomAccessContent
getFilePointer
in interface RandomAccessContent
java.io.IOException
- if an I/O error occurs.public void seek(long pos) throws java.io.IOException
RandomAccessContent
The offset may be set beyond the end of the file. Setting the offset beyond the end of the file does not change the file length. The file length will change only by writing after the offset has been set beyond the end of the file.
Notice: If you use RandomAccessContent.getInputStream()
you have to re-get the InputStream after calling
RandomAccessContent.seek(long)
seek
in interface RandomAccessContent
pos
- the offset position, measured in bytes from the beginning of the file, at which to set the file
pointer.java.io.IOException
- if pos
is less than 0
or if an I/O error occurs.public long length() throws java.io.IOException
RandomAccessContent
length
in interface RandomAccessContent
java.io.IOException
- if an I/O error occurs.public void close() throws java.io.IOException
RandomAccessContent
A closed random access file cannot perform input or output operations and cannot be reopened.
If this file has an associated channel then the channel is closed as well.
close
in interface RandomAccessContent
java.io.IOException
- if an I/O error occurs.public byte readByte() throws java.io.IOException
readByte
in interface java.io.DataInput
java.io.IOException
public char readChar() throws java.io.IOException
readChar
in interface java.io.DataInput
java.io.IOException
public double readDouble() throws java.io.IOException
readDouble
in interface java.io.DataInput
java.io.IOException
public float readFloat() throws java.io.IOException
readFloat
in interface java.io.DataInput
java.io.IOException
public int readInt() throws java.io.IOException
readInt
in interface java.io.DataInput
java.io.IOException
public int readUnsignedByte() throws java.io.IOException
readUnsignedByte
in interface java.io.DataInput
java.io.IOException
public int readUnsignedShort() throws java.io.IOException
readUnsignedShort
in interface java.io.DataInput
java.io.IOException
public long readLong() throws java.io.IOException
readLong
in interface java.io.DataInput
java.io.IOException
public short readShort() throws java.io.IOException
readShort
in interface java.io.DataInput
java.io.IOException
public boolean readBoolean() throws java.io.IOException
readBoolean
in interface java.io.DataInput
java.io.IOException
public int skipBytes(int n) throws java.io.IOException
skipBytes
in interface java.io.DataInput
java.io.IOException
public void readFully(byte[] b) throws java.io.IOException
readFully
in interface java.io.DataInput
java.io.IOException
public void readFully(byte[] b, int off, int len) throws java.io.IOException
readFully
in interface java.io.DataInput
java.io.IOException
private int getLeftBytes()
public java.lang.String readUTF() throws java.io.IOException
readUTF
in interface java.io.DataInput
java.io.IOException
public void write(byte[] b, int off, int len) throws java.io.IOException
write
in interface java.io.DataOutput
java.io.IOException
public void write(byte[] b) throws java.io.IOException
write
in interface java.io.DataOutput
java.io.IOException
public void writeByte(int i) throws java.io.IOException
writeByte
in interface java.io.DataOutput
java.io.IOException
public static long toLong(byte[] b)
b
- The byte[] to convert.public static byte[] toBytes(long n, byte[] b)
n
- The number to convert.b
- The array to fill.public static short toShort(byte[] b)
b
- The byte[] to convert.public static int toUnsignedShort(byte[] b)
b
- The byte[] to convert.public void write(int b) throws java.io.IOException
write
in interface java.io.DataOutput
java.io.IOException
public void writeBoolean(boolean v) throws java.io.IOException
writeBoolean
in interface java.io.DataOutput
java.io.IOException
public void writeBytes(java.lang.String s) throws java.io.IOException
writeBytes
in interface java.io.DataOutput
java.io.IOException
public void writeChar(int v) throws java.io.IOException
writeChar
in interface java.io.DataOutput
java.io.IOException
public void writeChars(java.lang.String s) throws java.io.IOException
writeChars
in interface java.io.DataOutput
java.io.IOException
public void writeDouble(double v) throws java.io.IOException
writeDouble
in interface java.io.DataOutput
java.io.IOException
public void writeFloat(float v) throws java.io.IOException
writeFloat
in interface java.io.DataOutput
java.io.IOException
public void writeInt(int v) throws java.io.IOException
writeInt
in interface java.io.DataOutput
java.io.IOException
public void writeLong(long v) throws java.io.IOException
writeLong
in interface java.io.DataOutput
java.io.IOException
public void writeShort(int v) throws java.io.IOException
writeShort
in interface java.io.DataOutput
java.io.IOException
public void writeUTF(java.lang.String str) throws java.io.IOException
writeUTF
in interface java.io.DataOutput
java.io.IOException
public java.lang.String readLine() throws java.io.IOException
readLine
in interface java.io.DataInput
java.io.IOException
public java.io.InputStream getInputStream() throws java.io.IOException
RandomAccessContent
Notice: If you use RandomAccessContent.seek(long)
you have to re-get the InputStream
getInputStream
in interface RandomAccessContent
java.io.IOException
- if an I/O error occurs.public void setLength(long newLength) throws java.io.IOException
RandomAccessContent
If the the newLength
argument is smaller than RandomAccessContent.length()
, the content is truncated.
If the the newLength
argument is greater than RandomAccessContent.length()
, the content grows with undefined data.
setLength
in interface RandomAccessContent
newLength
- The desired content lengthjava.io.IOException
- If an I/O error occurs