public final class MemoryMappedByteWriter extends Object implements ByteWriter
RandomAccessFile
class.
This is because such methods use JNI and any calls to native code from Java are very slow.
This class is not threadsafe. It is not safe to pass an instance of this class
to multiple threads. It is not safe to pass an instance of this class to multiple users even
if in the same thread. It is not safe to give the same RandomAccessFile to multiple instances
of this class.EOF
Constructor and Description |
---|
MemoryMappedByteWriter(RandomAccessFile file)
Create a new RandomAccessFileByteReader with the given
RandomAccessFile . |
MemoryMappedByteWriter(RandomAccessFile file,
int numberOfBuffers,
int bufferSize)
Create a new RandomAccessFileByteReader with the given
RandomAccessFile . |
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this
ByteReader and releases any system resources
associated with this stream. |
void |
flush()
Flushes this
ByteWriter and forces any unwritten buffered output bytes
to be written out to the underlying repository. |
long |
length()
Returns the number of total bytes in the repository that are visible through
this API.
|
int |
read(long position)
Read a single byte from the underlying bytes at the given position.
|
int |
read(long position,
byte[] b,
int offset,
int length)
Transfers bytes from the underlying repository into the given destination array.
|
String |
toString() |
void |
write(long position,
byte[] b,
int offset,
int length)
Write an array of bytes at the position given.
|
void |
write(long position,
int b)
Write the byte given at the position given.
|
public MemoryMappedByteWriter(RandomAccessFile file, int numberOfBuffers, int bufferSize)
RandomAccessFile
.
The RandomAccessFile
given to this ByteWriter belongs
to it and must not be used after construction of this ByteWriter. It will be closed
when this ByteWriter is closed.file
- the location to read bytes from.numberOfBuffers
- the number of buffers to usebufferSize
- the size in bytes for the bufferspublic MemoryMappedByteWriter(RandomAccessFile file)
RandomAccessFile
.
RandomAccessFile
given to this ByteReader must not
be written to during the time it is being used by this or any ByteReader.file
- the location to read bytes from.public void write(long position, int b) throws IOException
ByteWriter
length of virtual array = max(length of virtual array, position of byte written + 1)
write
in interface ByteWriter
position
- the zero-based offset within the byte array.b
- the byte to write.IOException
- if an error occurs during the write operationByteWriter.write(long, int)
public void write(long position, byte[] b, int offset, int length) throws IOException
ByteWriter
length of virtual array = max(length of virtual array, position of byte written + 1)
write
in interface ByteWriter
position
- the zero-based offset within the byte array.b
- the array of bytes to write from.offset
- the offset within the byte array to start writing from.length
- the number of bytes to write from the byte array.IOException
- if an error occurs during the write operationByteWriter.write(long, byte[], int, int)
public long length() throws IOException
ByteReader
length
in interface ByteReader
IOException
- if an error occurs while trying to determine the lengthByteReader.length()
public void flush() throws IOException
ByteWriter
ByteWriter
and forces any unwritten buffered output bytes
to be written out to the underlying repository.flush
in interface ByteWriter
IOException
- if an error occurs while trying to flush the bufferByteWriter.flush()
public void close() throws IOException
ByteReader
ByteReader
and releases any system resources
associated with this stream.close
in interface ByteReader
IOException
- if an error occurs while trying to closeByteReader.close()
public int read(long position) throws IOException
ByteReader
read
in interface ByteReader
position
- the position to read the byte from.IOException
- if an error occurs during the read operationByteReader.read(long)
public int read(long position, byte[] b, int offset, int length) throws IOException
ByteReader
length
bytes from the repository starting at the postion
given into the given array starting at the given offset.read
in interface ByteReader
position
- the position to read the byte from.b
- the array to write the bytes into.offset
- the offset in the array at which the first byte is written.length
- the maximum number of bytes to write into the array.IOException
- if an error occurs during the read operationByteReader.read(long, byte[], int, int)
public String toString()
toString
in class Object
Object.toString()
Copyright © 2010 - 2020 Adobe. All Rights Reserved