public class NIOFileHandle extends AbstractNIOHandle
IRandomAccess
,
RandomAccessFile
Modifier and Type | Field and Description |
---|---|
protected ByteBuffer |
buffer
The buffer itself.
|
protected int |
bufferSize
The buffer size.
|
protected long |
bufferStartPosition
The absolute position of the start of the buffer.
|
protected NIOByteBufferProvider |
byteBufferProvider
Provider class for NIO byte buffers, allocated or memory mapped.
|
protected FileChannel |
channel
The file channel backed by the random access file.
|
protected static int |
defaultBufferSize
Default NIO buffer size to facilitate buffered I/O.
|
private Long |
defaultLength
The original length of the file.
|
protected static int |
defaultRWBufferSize
Default NIO buffer size to facilitate buffered I/O for read/write streams.
|
protected boolean |
isReadWrite
Whether or not the file is opened read/write.
|
private static org.slf4j.Logger |
LOGGER
Logger for this class.
|
protected FileChannel.MapMode |
mapMode
The default map mode for the file.
|
protected ByteOrder |
order
The buffer's byte ordering.
|
protected long |
position
The absolute position within the file.
|
protected RandomAccessFile |
raf
The random access file object backing this FileHandle.
|
EOF_ERROR_MSG
Constructor and Description |
---|
NIOFileHandle(File file,
String mode)
Creates a random access file stream to read from, and
optionally to write to, the file specified by the File argument.
|
NIOFileHandle(File file,
String mode,
int bufferSize)
Creates a random access file stream to read from, and
optionally to write to, the file specified by the File argument.
|
NIOFileHandle(String name,
String mode)
Creates a random access file stream to read from, and
optionally to write to, a file with the specified name.
|
Modifier and Type | Method and Description |
---|---|
private void |
buffer(long offset,
int size)
Aligns the NIO buffer, maps it if it is not currently and sets all
relevant positions and offsets.
|
void |
close()
Closes this random access stream and releases
any system resources associated with the stream.
|
private void |
doWrite(int length) |
int |
getBufferSize()
Gets the current buffer size.
|
FileChannel |
getFileChannel()
Gets the FileChannel from this FileHandle.
|
long |
getFilePointer()
Returns the current offset in this stream.
|
ByteOrder |
getOrder()
Returns the current order of the stream.
|
RandomAccessFile |
getRandomAccessFile()
Gets the random access file object backing this FileHandle.
|
long |
length()
Returns the length of this stream.
|
int |
read(byte[] b)
Reads up to b.length bytes of data
from this stream into an array of bytes.
|
int |
read(byte[] b,
int off,
int len)
Reads up to len bytes of data from this stream into an array of bytes.
|
int |
read(ByteBuffer buf)
Reads up to buffer.capacity() bytes of data
from this stream into a ByteBuffer.
|
int |
read(ByteBuffer buf,
int off,
int len)
Reads up to len bytes of data from this stream into a ByteBuffer.
|
boolean |
readBoolean() |
byte |
readByte() |
char |
readChar() |
double |
readDouble() |
float |
readFloat() |
void |
readFully(byte[] b) |
void |
readFully(byte[] b,
int off,
int len) |
int |
readInt() |
String |
readLine() |
long |
readLong() |
short |
readShort() |
int |
readUnsignedByte() |
int |
readUnsignedShort() |
String |
readUTF() |
void |
seek(long pos)
Sets the stream pointer offset, measured from the beginning
of this stream, at which the next read or write occurs.
|
static void |
setDefaultBufferSize(int size)
Set the default buffer size for read-only files.
|
static void |
setDefaultReadWriteBufferSize(int size)
Set the default buffer size for read/write files.
|
void |
setLength(long length)
Sets the new length of the handle.
|
void |
setOrder(ByteOrder order)
Sets the byte order of the stream.
|
int |
skipBytes(int n) |
void |
write(byte[] b) |
void |
write(byte[] b,
int off,
int len) |
void |
write(ByteBuffer buf)
Writes up to buffer.capacity() bytes of data from the given
ByteBuffer to this stream.
|
void |
write(ByteBuffer buf,
int off,
int len)
Writes up to len bytes of data from the given ByteBuffer to this
stream.
|
void |
write(int b) |
void |
writeBoolean(boolean v) |
void |
writeByte(int v) |
void |
writeBytes(String s) |
void |
writeChar(int v) |
void |
writeChars(String s) |
void |
writeDouble(double v) |
void |
writeFloat(float v) |
void |
writeInt(int v) |
void |
writeLong(long v) |
private void |
writeSetup(int length) |
void |
writeShort(int v) |
void |
writeUTF(String str) |
validateLength, validateMode
private static final org.slf4j.Logger LOGGER
protected static int defaultBufferSize
protected static int defaultRWBufferSize
protected RandomAccessFile raf
protected FileChannel channel
protected long position
protected long bufferStartPosition
protected int bufferSize
protected ByteBuffer buffer
protected boolean isReadWrite
protected FileChannel.MapMode mapMode
protected ByteOrder order
protected NIOByteBufferProvider byteBufferProvider
private Long defaultLength
public NIOFileHandle(File file, String mode, int bufferSize) throws IOException
IOException
public NIOFileHandle(File file, String mode) throws IOException
IOException
public NIOFileHandle(String name, String mode) throws IOException
IOException
public static void setDefaultBufferSize(int size)
public static void setDefaultReadWriteBufferSize(int size)
public RandomAccessFile getRandomAccessFile()
public FileChannel getFileChannel()
public int getBufferSize()
public void setLength(long length) throws IOException
AbstractNIOHandle
setLength
in class AbstractNIOHandle
length
- New length.IOException
- If there is an error changing the handle's length.public void close() throws IOException
IRandomAccess
IOException
public long getFilePointer()
IRandomAccess
public long length() throws IOException
IRandomAccess
IOException
public ByteOrder getOrder()
IRandomAccess
public void setOrder(ByteOrder order)
IRandomAccess
order
- Order to set.public int read(byte[] b) throws IOException
IRandomAccess
IOException
public int read(byte[] b, int off, int len) throws IOException
IRandomAccess
IOException
public int read(ByteBuffer buf) throws IOException
IRandomAccess
IOException
public int read(ByteBuffer buf, int off, int len) throws IOException
IRandomAccess
IOException
public void seek(long pos) throws IOException
IRandomAccess
IOException
public boolean readBoolean() throws IOException
IOException
public byte readByte() throws IOException
IOException
public char readChar() throws IOException
IOException
public double readDouble() throws IOException
IOException
public float readFloat() throws IOException
IOException
public void readFully(byte[] b) throws IOException
IOException
public void readFully(byte[] b, int off, int len) throws IOException
IOException
public int readInt() throws IOException
IOException
public String readLine() throws IOException
IOException
public long readLong() throws IOException
IOException
public short readShort() throws IOException
IOException
public int readUnsignedByte() throws IOException
IOException
public int readUnsignedShort() throws IOException
IOException
public String readUTF() throws IOException
IOException
public int skipBytes(int n) throws IOException
IOException
public void write(byte[] b) throws IOException
IOException
public void write(byte[] b, int off, int len) throws IOException
IOException
public void write(ByteBuffer buf) throws IOException
IRandomAccess
IOException
public void write(ByteBuffer buf, int off, int len) throws IOException
IRandomAccess
IOException
public void write(int b) throws IOException
IOException
public void writeBoolean(boolean v) throws IOException
IOException
public void writeByte(int v) throws IOException
IOException
public void writeBytes(String s) throws IOException
IOException
public void writeChar(int v) throws IOException
IOException
public void writeChars(String s) throws IOException
IOException
public void writeDouble(double v) throws IOException
IOException
public void writeFloat(float v) throws IOException
IOException
public void writeInt(int v) throws IOException
IOException
public void writeLong(long v) throws IOException
IOException
public void writeShort(int v) throws IOException
IOException
public void writeUTF(String str) throws IOException
IOException
private void buffer(long offset, int size) throws IOException
offset
- The location within the file to read from.size
- The requested read length.IOException
- If there is an issue mapping, aligning or allocating
the buffer.private void writeSetup(int length) throws IOException
IOException
private void doWrite(int length) throws IOException
IOException
Copyright © 2015 Open Microscopy Environment