-compatible FITS I/O handler.
The ArrayDataInput interface contains a lot of methods declared like
int read(type[]) throws IOException;
whose behaviour is not documented - when do they throw an exception
and what do they return? The behaviour implemented here follows that
of the BufferedFile
implementation (which is similarly
undocumented). It is as follows:
- The methods read as many items as there are left, up to the
requested maximum or the end of file.
- The return value is the number of bytes read
- An EOFException is thrown only if no items could be read
Consult the BufferedFile
implementation for more details.
- Since:
- 5 Jan 2007
Method Summary |
protected abstract byte |
get()
Reads one byte from the current position. |
protected abstract void |
get(byte[] buf,
int offset,
int length)
Reads bytes into a buffer from the current position. |
abstract long |
length()
Returns the size of this buffer. |
protected abstract void |
put(byte b)
Writes a single byte at the current position. |
protected abstract void |
put(byte[] buf,
int offset,
int length)
Writes bytes from a buffer to the current position. |
int |
read(boolean[] buf)
|
int |
read(boolean[] buf,
int start,
int length)
|
int |
read(byte[] buf)
|
int |
read(byte[] buf,
int start,
int length)
|
int |
read(char[] buf)
|
int |
read(char[] buf,
int start,
int length)
|
int |
read(double[] buf)
|
int |
read(double[] buf,
int start,
int length)
|
int |
read(float[] buf)
|
int |
read(float[] buf,
int start,
int length)
|
int |
read(int[] buf)
|
int |
read(int[] buf,
int start,
int length)
|
int |
read(long[] buf)
|
int |
read(long[] buf,
int start,
int length)
|
int |
read(short[] buf)
|
int |
read(short[] buf,
int start,
int length)
|
int |
readArray(java.lang.Object o)
|
boolean |
readBoolean()
|
byte |
readByte()
|
char |
readChar()
|
double |
readDouble()
|
float |
readFloat()
|
void |
readFully(byte[] buf)
|
void |
readFully(byte[] buf,
int start,
int len)
Reads a specified number of bytes into an array. |
int |
readInt()
|
java.lang.String |
readLine()
Deprecated. see DataInputStream.readLine() |
long |
readLong()
|
short |
readShort()
|
int |
readUnsignedByte()
|
int |
readUnsignedShort()
|
java.lang.String |
readUTF()
|
protected abstract long |
remaining()
Returns the number of bytes remaining between the current position
and the end of the file. |
void |
write(boolean[] buf)
|
void |
write(boolean[] buf,
int start,
int length)
|
void |
write(byte[] buf)
|
void |
write(byte[] buf,
int start,
int length)
|
void |
write(char[] buf)
|
void |
write(char[] buf,
int start,
int length)
|
void |
write(double[] buf)
|
void |
write(double[] buf,
int start,
int length)
|
void |
write(float[] buf)
|
void |
write(float[] buf,
int start,
int length)
|
void |
write(int val)
|
void |
write(int[] buf)
|
void |
write(int[] buf,
int start,
int length)
|
void |
write(long[] buf)
|
void |
write(long[] buf,
int start,
int length)
|
void |
write(short[] buf)
|
void |
write(short[] buf,
int start,
int length)
|
void |
write(java.lang.String[] strings)
|
void |
write(java.lang.String[] strings,
int start,
int length)
|
void |
writeArray(java.lang.Object o)
|
void |
writeBoolean(boolean val)
|
void |
writeByte(int val)
|
void |
writeBytes(java.lang.String s)
|
void |
writeChar(int val)
|
void |
writeChars(java.lang.String s)
|
void |
writeDouble(double val)
|
void |
writeFloat(float val)
|
void |
writeInt(int val)
|
void |
writeLong(long val)
|
void |
writeShort(int val)
|
void |
writeUTF(java.lang.String str)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface nom.tam.util.ArrayDataInput |
close, skip |
Methods inherited from interface java.io.DataInput |
skipBytes |
Methods inherited from interface nom.tam.util.ArrayDataOutput |
close, flush |
AbstractArrayDataIO
public AbstractArrayDataIO()
get
protected abstract byte get()
throws java.io.IOException
- Reads one byte from the current position.
- Returns:
- next byte
- Throws:
java.io.IOException
get
protected abstract void get(byte[] buf,
int offset,
int length)
throws java.io.IOException
- Reads bytes into a buffer from the current position.
- Parameters:
buf
- destination bufferoffset
- offset of first byte in buf
to be writtenlength
- maximum number of bytes to be written to
buf
- Throws:
java.io.IOException
put
protected abstract void put(byte b)
throws java.io.IOException
- Writes a single byte at the current position.
- Parameters:
b
- output byte
- Throws:
java.io.IOException
put
protected abstract void put(byte[] buf,
int offset,
int length)
throws java.io.IOException
- Writes bytes from a buffer to the current position.
- Parameters:
buf
- source bufferoffset
- offset of first byte in buf
to be readlength
- number of bytes from buf
to be read
- Throws:
java.io.IOException
length
public abstract long length()
- Returns the size of this buffer. May be -1 if not known/unlimited.
- Returns:
- length or -1
remaining
protected abstract long remaining()
- Returns the number of bytes remaining between the current position
and the end of the file. If there is no end to the file, it
is permissible to return
Long.MAX_VALUE
;
- Returns:
- number of bytes left in file
readBoolean
public boolean readBoolean()
throws java.io.IOException
- Specified by:
readBoolean
in interface java.io.DataInput
- Throws:
java.io.IOException
readByte
public byte readByte()
throws java.io.IOException
- Specified by:
readByte
in interface java.io.DataInput
- Throws:
java.io.IOException
readShort
public short readShort()
throws java.io.IOException
- Specified by:
readShort
in interface java.io.DataInput
- Throws:
java.io.IOException
readChar
public char readChar()
throws java.io.IOException
- Specified by:
readChar
in interface java.io.DataInput
- Throws:
java.io.IOException
readInt
public int readInt()
throws java.io.IOException
- Specified by:
readInt
in interface java.io.DataInput
- Throws:
java.io.IOException
readLong
public long readLong()
throws java.io.IOException
- Specified by:
readLong
in interface java.io.DataInput
- Throws:
java.io.IOException
readFloat
public float readFloat()
throws java.io.IOException
- Specified by:
readFloat
in interface java.io.DataInput
- Throws:
java.io.IOException
readDouble
public double readDouble()
throws java.io.IOException
- Specified by:
readDouble
in interface java.io.DataInput
- Throws:
java.io.IOException
readUnsignedByte
public int readUnsignedByte()
throws java.io.IOException
- Specified by:
readUnsignedByte
in interface java.io.DataInput
- Throws:
java.io.IOException
readUnsignedShort
public int readUnsignedShort()
throws java.io.IOException
- Specified by:
readUnsignedShort
in interface java.io.DataInput
- Throws:
java.io.IOException
readUTF
public java.lang.String readUTF()
throws java.io.IOException
- Specified by:
readUTF
in interface java.io.DataInput
- Throws:
java.io.IOException
readLine
public java.lang.String readLine()
throws java.io.IOException
- Deprecated. see
DataInputStream.readLine()
- Not implemented - this method is deprecated in any case.
- Specified by:
readLine
in interface java.io.DataInput
- Throws:
java.lang.UnsupportedOperationException
java.io.IOException
readFully
public void readFully(byte[] buf,
int start,
int len)
throws java.io.IOException
- Reads a specified number of bytes into an array. Unlike the
read methods, this throws an EOFException if insufficient bytes
are available. In this case all the bytes that can be read, will
be read before the exception is thrown.
- Specified by:
readFully
in interface java.io.DataInput
- Parameters:
buf
- the byte buffer into which to readstart
- the index in buf at which to start putting byteslen
- the number of bytes which must be read
- Throws:
java.io.EOFException
- if there are fewer than len bytes left
java.io.IOException
read
public int read(byte[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(boolean[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(short[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(char[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(int[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(long[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(float[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(double[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
readFully
public void readFully(byte[] buf)
throws java.io.IOException
- Specified by:
readFully
in interface java.io.DataInput
- Throws:
java.io.IOException
read
public int read(byte[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(boolean[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(short[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(char[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(int[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(long[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(float[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
read
public int read(double[] buf)
throws java.io.IOException
- Specified by:
read
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
readArray
public int readArray(java.lang.Object o)
throws java.io.IOException
- Specified by:
readArray
in interface nom.tam.util.ArrayDataInput
- Throws:
java.io.IOException
write
public void write(int val)
throws java.io.IOException
- Specified by:
write
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeBoolean
public void writeBoolean(boolean val)
throws java.io.IOException
- Specified by:
writeBoolean
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeByte
public void writeByte(int val)
throws java.io.IOException
- Specified by:
writeByte
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeShort
public void writeShort(int val)
throws java.io.IOException
- Specified by:
writeShort
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeChar
public void writeChar(int val)
throws java.io.IOException
- Specified by:
writeChar
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeInt
public void writeInt(int val)
throws java.io.IOException
- Specified by:
writeInt
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeLong
public void writeLong(long val)
throws java.io.IOException
- Specified by:
writeLong
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeFloat
public void writeFloat(float val)
throws java.io.IOException
- Specified by:
writeFloat
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeDouble
public void writeDouble(double val)
throws java.io.IOException
- Specified by:
writeDouble
in interface java.io.DataOutput
- Throws:
java.io.IOException
write
public void write(byte[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface java.io.DataOutput
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(boolean[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(short[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(char[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(int[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(long[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(float[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(double[] buf,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(java.lang.String[] strings,
int start,
int length)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
writeBytes
public void writeBytes(java.lang.String s)
throws java.io.IOException
- Specified by:
writeBytes
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeChars
public void writeChars(java.lang.String s)
throws java.io.IOException
- Specified by:
writeChars
in interface java.io.DataOutput
- Throws:
java.io.IOException
writeUTF
public void writeUTF(java.lang.String str)
throws java.io.IOException
- Specified by:
writeUTF
in interface java.io.DataOutput
- Throws:
java.io.IOException
write
public void write(byte[] buf)
throws java.io.IOException
- Specified by:
write
in interface java.io.DataOutput
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(boolean[] buf)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(short[] buf)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(char[] buf)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(int[] buf)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(long[] buf)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(float[] buf)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(double[] buf)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
write
public void write(java.lang.String[] strings)
throws java.io.IOException
- Specified by:
write
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException
writeArray
public void writeArray(java.lang.Object o)
throws java.io.IOException
- Specified by:
writeArray
in interface nom.tam.util.ArrayDataOutput
- Throws:
java.io.IOException