public class MappedFile extends AbstractArrayDataIO implements RandomAccess
This class implements the nom.tam.util
ArrayDataInput, ArrayDataOutput
and RandomAccess interfaces
in the same way that nom.tam.util.BufferedFile does.
Hence it can be used as a drop-in replacement for BufferedFile.
Unlike BufferedFile however, it does mapped access to files
(using java.nio.Buffer objects). This may be moderately more efficient
for sequential access to a file, but is dramatically more efficient
if very random access is required. This is because BufferedFile
effectively always assumes that you are going to read sequentially,
so that accessing a single datum distant from (or before) the last
datum accessed always results in filling a whole buffer.
| Modifier and Type | Class and Description |
|---|---|
static class |
MappedFile.FileTooLongException
Exception indicating that a file is too long to map.
|
| Constructor and Description |
|---|
MappedFile(ByteBuffer buf)
Constructs a MappedFile object from a byte buffer.
|
MappedFile(String filename)
Constructs a MappedFile object by mapping the whole of
an existing file using read-only mode.
|
MappedFile(String filename,
String mode)
Constructs a MappedFile object by mapping the whole of
an existing file with a given mode.
|
MappedFile(String filename,
String mode,
long start,
int size)
Constructs a MappedFile object by mapping part of an existing file
with a given mode.
|
| Modifier and Type | Method and Description |
|---|---|
void |
close() |
void |
flush() |
protected byte |
get()
Reads one byte from the current position.
|
protected void |
get(byte[] buf,
int offset,
int length)
Reads bytes into a buffer from the current position.
|
long |
getFilePointer()
Get the current position in the stream
|
long |
length()
Returns the size of this buffer.
|
void |
mark(int readlimit) |
boolean |
markSupported() |
protected void |
put(byte b)
Writes a single byte at the current position.
|
protected void |
put(byte[] buf,
int offset,
int length)
Writes bytes from a buffer to the current position.
|
protected long |
remaining()
Returns the number of bytes remaining between the current position
and the end of the file.
|
void |
reset() |
void |
seek(long offsetFromStart)
Move to a specified location in the stream.
|
long |
skip(long offset) |
void |
skipAllBytes(int toSkip) |
void |
skipAllBytes(long toSkip) |
int |
skipBytes(int toSkip) |
read, read, read, read, read, read, read, read, read, read, read, read, read, read, read, read, readArray, readBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLArray, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTF, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, write, writeArray, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeLong, writeShort, writeUTFclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitread, read, read, read, read, read, read, read, read, read, read, read, read, read, read, read, readArrayreadBoolean, readByte, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedShort, readUTFpublic MappedFile(ByteBuffer buf)
buf - byte bufferpublic MappedFile(String filename) throws IOException
filename - name of the file to mapMappedFile.FileTooLongException - if the file is too long to mapIOExceptionpublic MappedFile(String filename, String mode) throws IOException
filename - name of the file to mapmode - modeMappedFile.FileTooLongException - if the file is too long to mapIOExceptionpublic MappedFile(String filename, String mode, long start, int size) throws IOException
filename - name of the file to mapmode - modestart - offset of region to mapsize - length of region to mapIOExceptionpublic void seek(long offsetFromStart)
throws IOException
RandomAccessseek in interface RandomAccessIOExceptionpublic long skip(long offset)
skip in interface ArrayDataInputpublic long getFilePointer()
RandomAccessgetFilePointer in interface RandomAccesspublic void skipAllBytes(long toSkip)
throws IOException
IOExceptionpublic void skipAllBytes(int toSkip)
throws IOException
IOExceptionpublic boolean markSupported()
public void mark(int readlimit)
public void reset()
throws IOException
IOExceptionprotected byte get()
throws IOException
AbstractArrayDataIOget in class AbstractArrayDataIOIOExceptionprotected void get(byte[] buf,
int offset,
int length)
throws IOException
AbstractArrayDataIOget in class AbstractArrayDataIObuf - destination bufferoffset - offset of first byte in buf to be writtenlength - maximum number of bytes to be written to
bufIOExceptionprotected void put(byte b)
throws IOException
AbstractArrayDataIOput in class AbstractArrayDataIOb - output byteIOExceptionprotected void put(byte[] buf,
int offset,
int length)
throws IOException
AbstractArrayDataIOput in class AbstractArrayDataIObuf - source bufferoffset - offset of first byte in buf to be readlength - number of bytes from buf to be readIOExceptionpublic long length()
AbstractArrayDataIOlength in class AbstractArrayDataIOprotected long remaining()
AbstractArrayDataIOLong.MAX_VALUE;remaining in class AbstractArrayDataIOpublic void close()
close in interface ArrayDataInputclose in interface ArrayDataOutputpublic void flush()
flush in interface ArrayDataOutputCopyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.