public class MappedFile extends AbstractArrayDataIO implements nom.tam.util.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.
|
BITS_OF_1_BYTE, BITS_OF_2_BYTES, BITS_OF_3_BYTES, BITS_OF_4_BYTES, BITS_OF_5_BYTES, BITS_OF_6_BYTES, BITS_OF_7_BYTES, BYTE_1_OF_LONG_MASK, BYTE_2_OF_LONG_MASK, BYTE_3_OF_LONG_MASK, BYTE_4_OF_LONG_MASK, BYTE_MASK, BYTES_IN_BOOLEAN, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_DOUBLE, BYTES_IN_FLOAT, BYTES_IN_INTEGER, BYTES_IN_LONG, BYTES_IN_SHORT, DEFAULT_BUFFER_SIZE, HIGH_INTEGER_MASK, INTEGER_MASK, SHORT_MASK, SHORT_OF_LONG_MASK
Constructor and Description |
---|
MappedFile(java.nio.ByteBuffer buf)
Constructs a MappedFile object from a byte buffer.
|
MappedFile(java.lang.String filename)
Constructs a MappedFile object by mapping the whole of
an existing file using read-only mode.
|
MappedFile(java.lang.String filename,
java.lang.String mode)
Constructs a MappedFile object by mapping the whole of
an existing file with a given mode.
|
MappedFile(java.lang.String filename,
java.lang.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() |
long |
length()
Returns the size of this buffer.
|
void |
mark(int i) |
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) |
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, writeUTF
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public MappedFile(java.nio.ByteBuffer buf)
buf
- byte bufferpublic MappedFile(java.lang.String filename) throws java.io.IOException
filename
- name of the file to mapMappedFile.FileTooLongException
- if the file is too long to mapjava.io.IOException
public MappedFile(java.lang.String filename, java.lang.String mode) throws java.io.IOException
filename
- name of the file to mapmode
- modeMappedFile.FileTooLongException
- if the file is too long to mapjava.io.IOException
public MappedFile(java.lang.String filename, java.lang.String mode, long start, int size) throws java.io.IOException
filename
- name of the file to mapmode
- modestart
- offset of region to mapsize
- length of region to mapjava.io.IOException
public void seek(long offsetFromStart) throws java.io.IOException
seek
in interface nom.tam.util.RandomAccess
java.io.IOException
public long skip(long offset)
skip
in interface nom.tam.util.ArrayDataInput
public long getFilePointer()
getFilePointer
in interface nom.tam.util.RandomAccess
public void skipAllBytes(long toSkip)
skipAllBytes
in interface nom.tam.util.ArrayDataInput
public void skipAllBytes(int toSkip)
skipAllBytes
in interface nom.tam.util.ArrayDataInput
public int skipBytes(int toSkip)
skipBytes
in interface java.io.DataInput
protected byte get() throws java.io.IOException
AbstractArrayDataIO
get
in class AbstractArrayDataIO
java.io.IOException
protected void get(byte[] buf, int offset, int length) throws java.io.IOException
AbstractArrayDataIO
get
in class AbstractArrayDataIO
buf
- destination bufferoffset
- offset of first byte in buf
to be writtenlength
- maximum number of bytes to be written to
buf
java.io.IOException
protected void put(byte b) throws java.io.IOException
AbstractArrayDataIO
put
in class AbstractArrayDataIO
b
- output bytejava.io.IOException
protected void put(byte[] buf, int offset, int length) throws java.io.IOException
AbstractArrayDataIO
put
in class AbstractArrayDataIO
buf
- source bufferoffset
- offset of first byte in buf
to be readlength
- number of bytes from buf
to be readjava.io.IOException
public long length()
AbstractArrayDataIO
length
in class AbstractArrayDataIO
protected long remaining()
AbstractArrayDataIO
Long.MAX_VALUE
;remaining
in class AbstractArrayDataIO
public void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in interface nom.tam.util.FitsIO
public void flush()
flush
in interface nom.tam.util.ArrayDataOutput
public boolean markSupported()
public void reset() throws java.io.IOException
reset
in interface nom.tam.util.ArrayDataInput
java.io.IOException
public void mark(int i)
mark
in interface nom.tam.util.ArrayDataInput
Copyright © 2017 Central Laboratory of the Research Councils. All Rights Reserved.