javax.imageio.stream

Class ImageInputStreamImpl

Implemented Interfaces:
DataInput, ImageInputStream
Known Direct Subclasses:
FileCacheImageInputStream, FileImageInputStream, ImageOutputStreamImpl, MemoryCacheImageInputStream

public abstract class ImageInputStreamImpl
extends Object
implements ImageInputStream

Field Summary

protected int
bitOffset
protected ByteOrder
byteOrder
protected long
flushedPos
protected long
streamPos

Constructor Summary

ImageInputStreamImpl()
The basic constructor.

Method Summary

protected void
checkClosed()
void
close()
protected void
finalize()
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed.
void
flush()
void
flushBefore(long position)
int
getBitOffset()
ByteOrder
getByteOrder()
long
getFlushedPosition()
long
getStreamPosition()
boolean
isCached()
boolean
isCachedFile()
boolean
isCachedMemory()
long
length()
void
mark()
abstract int
read()
int
read(byte[] data)
abstract int
read(byte[] data, int offset, int len)
int
readBit()
long
readBits(int numBits)
boolean
readBoolean()
Reads a byte and checks whether or not its value is zero.
byte
readByte()
Reads a signed byte.
void
readBytes(IIOByteBuffer buffer, int len)
Reads up to a specified number of bytes, and modifies a IIOByteBuffer to hold the read data.
char
readChar()
Reads an unsigned 16-bit integer.
double
readDouble()
Reads an IEEE 64-bit double-precision floating point number.
float
readFloat()
Reads an IEEE 32-bit single-precision floating point number.
void
readFully(byte[] data)
Reads a sequence of signed 8-bit integers into a byte[] array.
void
readFully(byte[] data, int offset, int len)
Reads a sequence of signed 8-bit integers into a byte[] array.
void
readFully(char[] data, int offset, int len)
Reads a sequence of unsigned 16-bit integers into a char[] array.
void
readFully(double[] data, int offset, int len)
Reads a sequence of IEEE 64-bit double-precision floating point numbers into a double[] array.
void
readFully(float[] data, int offset, int len)
Reads a sequence of IEEE 32-bit single-precision floating point numbers into a float[] array.
void
readFully(int[] data, int offset, int len)
Reads a sequence of signed 32-bit integers into a long[] array.
void
readFully(long[] data, int offset, int len)
Reads a sequence of signed 64-bit integers into a long[] array.
void
readFully(short[] data, int offset, int len)
Reads a sequence of signed 16-bit integers into a short[] array.
int
readInt()
Reads a signed 32-bit integer.
String
readLine()
long
readLong()
Reads a signed 64-bit integer.
short
readShort()
Reads an signed 16-bit integer.
String
readUTF()
int
readUnsignedByte()
Reads an unsigned byte.
long
readUnsignedInt()
Reads an unsigned 32-bit integer.
int
readUnsignedShort()
Reads an unsigned 16-bit integer.
void
reset()
void
seek(long position)
void
setBitOffset(int bitOffset)
void
setByteOrder(ByteOrder byteOrder)
int
skipBytes(int num)
long
skipBytes(long num)

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

bitOffset

protected int bitOffset

byteOrder

protected ByteOrder byteOrder

flushedPos

protected long flushedPos

streamPos

protected long streamPos

Constructor Details

ImageInputStreamImpl

public ImageInputStreamImpl()
The basic constructor. Object is special, because it has no superclass, so there is no call to super().

Method Details

checkClosed

protected final void checkClosed()
            throws IOException

close

public void close()
            throws IOException
Specified by:
close in interface ImageInputStream

finalize

protected void finalize()
            throws Throwable
Called on an object by the Virtual Machine at most once, at some point after the Object is determined unreachable but before it is destroyed. You would think that this means it eventually is called on every Object, but this is not necessarily the case. If execution terminates abnormally, garbage collection does not always happen. Thus you cannot rely on this method to always work. For finer control over garbage collection, use references from the java.lang.ref package.

Virtual Machines are free to not call this method if they can determine that it does nothing important; for example, if your class extends Object and overrides finalize to do simply super.finalize().

finalize() will be called by a Thread that has no locks on any Objects, and may be called concurrently. There are no guarantees on the order in which multiple objects are finalized. This means that finalize() is usually unsuited for performing actions that must be thread-safe, and that your implementation must be use defensive programming if it is to always work.

If an Exception is thrown from finalize() during garbage collection, it will be patently ignored and the Object will still be destroyed.

It is allowed, although not typical, for user code to call finalize() directly. User invocation does not affect whether automatic invocation will occur. It is also permitted, although not recommended, for a finalize() method to "revive" an object by making it reachable from normal code again.

Unlike constructors, finalize() does not get called for an object's superclass unless the implementation specifically calls super.finalize().

The default implementation does nothing.

Overrides:
finalize in interface Object
Throws:
Throwable - permits a subclass to throw anything in an overridden version; but the default throws nothing

flush

public void flush()
            throws IOException
Specified by:
flush in interface ImageInputStream

flushBefore

public void flushBefore(long position)
            throws IOException
Specified by:
flushBefore in interface ImageInputStream

getBitOffset

public int getBitOffset()
            throws IOException
Specified by:
getBitOffset in interface ImageInputStream

getByteOrder

public ByteOrder getByteOrder()
Specified by:
getByteOrder in interface ImageInputStream

getFlushedPosition

public long getFlushedPosition()
Specified by:
getFlushedPosition in interface ImageInputStream

getStreamPosition

public long getStreamPosition()
            throws IOException
Specified by:
getStreamPosition in interface ImageInputStream

isCached

public boolean isCached()
Specified by:
isCached in interface ImageInputStream

isCachedFile

public boolean isCachedFile()
Specified by:
isCachedFile in interface ImageInputStream

isCachedMemory

public boolean isCachedMemory()
Specified by:
isCachedMemory in interface ImageInputStream

length

public long length()
Specified by:
length in interface ImageInputStream

mark

public void mark()
Specified by:
mark in interface ImageInputStream

read

public abstract int read()
            throws IOException
Specified by:
read in interface ImageInputStream

read

public int read(byte[] data)
            throws IOException
Specified by:
read in interface ImageInputStream

read

public abstract int read(byte[] data,
                         int offset,
                         int len)
            throws IOException
Specified by:
read in interface ImageInputStream

readBit

public int readBit()
            throws IOException
Specified by:
readBit in interface ImageInputStream

readBits

public long readBits(int numBits)
            throws IOException
Specified by:
readBits in interface ImageInputStream

readBoolean

public boolean readBoolean()
            throws IOException
Reads a byte and checks whether or not its value is zero.

The bit offset is set to zero before the byte is read.

Specified by:
readBoolean in interface ImageInputStream
readBoolean in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readByte

public byte readByte()
            throws IOException
Reads a signed byte.

The bit offset is set to zero before any data is read.

Specified by:
readByte in interface ImageInputStream
readByte in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readBytes

public void readBytes(IIOByteBuffer buffer,
                      int len)
            throws IOException
Reads up to a specified number of bytes, and modifies a IIOByteBuffer to hold the read data.

The bit offset is set to zero before any data is read.

Specified by:
readBytes in interface ImageInputStream
Parameters:
Throws:
IndexOutOfBoundsException - if numBytes is negative.
NullPointerException - if buf is null.
IOException - if some general problem happens with accessing data.

readChar

public char readChar()
            throws IOException
Reads an unsigned 16-bit integer. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

This method does the same as ImageInputStream.readUnsignedShort().

Specified by:
readChar in interface ImageInputStream
readChar in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readDouble

public double readDouble()
            throws IOException
Reads an IEEE 64-bit double-precision floating point number. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readDouble in interface ImageInputStream
readDouble in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readFloat

public float readFloat()
            throws IOException
Reads an IEEE 32-bit single-precision floating point number. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readFloat in interface ImageInputStream
readFloat in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readFully

public void readFully(byte[] data)
            throws IOException
Reads a sequence of signed 8-bit integers into a byte[] array.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
readFully in interface DataInput
Parameters:
Throws:
NullPointerException - if b is null.
IOException - if some general problem happens with accessing data.

readFully

public void readFully(byte[] data,
                      int offset,
                      int len)
            throws IOException
Reads a sequence of signed 8-bit integers into a byte[] array.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
readFully in interface DataInput
Parameters:
offset - the index of the first element in b that will hold read data.
Throws:
IndexOutOfBoundsException - if offset or numBytes is negative, or if offset + numBytes exceeds b.length.
NullPointerException - if b is null.
IOException - if some general problem happens with accessing data.

readFully

public void readFully(char[] data,
                      int offset,
                      int len)
            throws IOException
Reads a sequence of unsigned 16-bit integers into a char[] array. If necessary, values are converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
Parameters:
offset - the index of the first element in c that will hold read data.
Throws:
IndexOutOfBoundsException - if offset or numChars is negative, or if offset + numChars exceeds c.length.
NullPointerException - if c is null.
IOException - if some general problem happens with accessing data.

readFully

public void readFully(double[] data,
                      int offset,
                      int len)
            throws IOException
Reads a sequence of IEEE 64-bit double-precision floating point numbers into a double[] array. If necessary, values are converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
Parameters:
offset - the index of the first element in d that will hold read data.
Throws:
IndexOutOfBoundsException - if offset or numDoubles is negative, or if offset + numDoubles exceeds d.length.
NullPointerException - if d is null.
IOException - if some general problem happens with accessing data.

readFully

public void readFully(float[] data,
                      int offset,
                      int len)
            throws IOException
Reads a sequence of IEEE 32-bit single-precision floating point numbers into a float[] array. If necessary, values are converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
Parameters:
offset - the index of the first element in d that will hold read data.
Throws:
IndexOutOfBoundsException - if offset or numFloats is negative, or if offset + numFloats exceeds f.length.
NullPointerException - if f is null.
IOException - if some general problem happens with accessing data.

readFully

public void readFully(int[] data,
                      int offset,
                      int len)
            throws IOException
Reads a sequence of signed 32-bit integers into a long[] array. If necessary, values are converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
Parameters:
offset - the index of the first element in i that will hold read data.
Throws:
IndexOutOfBoundsException - if offset or numInts is negative, or if offset + numInts exceeds i.length.
NullPointerException - if i is null.
IOException - if some general problem happens with accessing data.

readFully

public void readFully(long[] data,
                      int offset,
                      int len)
            throws IOException
Reads a sequence of signed 64-bit integers into a long[] array. If necessary, values are converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
Parameters:
offset - the index of the first element in l that will hold read data.
Throws:
IndexOutOfBoundsException - if offset or numLongs is negative, or if offset + numLongs exceeds l.length.
NullPointerException - if l is null.
IOException - if some general problem happens with accessing data.

readFully

public void readFully(short[] data,
                      int offset,
                      int len)
            throws IOException
Reads a sequence of signed 16-bit integers into a short[] array. If necessary, values are converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readFully in interface ImageInputStream
Parameters:
offset - the index of the first element in s that will hold read data.
Throws:
IndexOutOfBoundsException - if offset or numShorts is negative, or if offset + numShorts exceeds s.length.
NullPointerException - if s is null.
IOException - if some general problem happens with accessing data.

readInt

public int readInt()
            throws IOException
Reads a signed 32-bit integer. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readInt in interface ImageInputStream
readInt in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readLine

public String readLine()
            throws IOException
Specified by:
readLine in interface ImageInputStream
readLine in interface DataInput

readLong

public long readLong()
            throws IOException
Reads a signed 64-bit integer. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readLong in interface ImageInputStream
readLong in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readShort

public short readShort()
            throws IOException
Reads an signed 16-bit integer. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readShort in interface ImageInputStream
readShort in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readUTF

public String readUTF()
            throws IOException
Specified by:
readUTF in interface ImageInputStream
readUTF in interface DataInput

readUnsignedByte

public int readUnsignedByte()
            throws IOException
Reads an unsigned byte.

The bit offset is set to zero before any data is read.

Specified by:
readUnsignedByte in interface ImageInputStream
readUnsignedByte in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

readUnsignedInt

public long readUnsignedInt()
            throws IOException
Reads an unsigned 32-bit integer. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

Specified by:
readUnsignedInt in interface ImageInputStream
Throws:
IOException - if some general problem happens with accessing data.

readUnsignedShort

public int readUnsignedShort()
            throws IOException
Reads an unsigned 16-bit integer. If necessary, the value gets converted from the stream’s current byte order.

The bit offset is set to zero before any data is read.

This method does the same as ImageInputStream.readChar().

Specified by:
readUnsignedShort in interface ImageInputStream
readUnsignedShort in interface DataInput
Throws:
IOException - if some general problem happens with accessing data.

reset

public void reset()
            throws IOException
Specified by:
reset in interface ImageInputStream

seek

public void seek(long position)
            throws IOException
Specified by:
seek in interface ImageInputStream

setBitOffset

public void setBitOffset(int bitOffset)
            throws IOException
Specified by:
setBitOffset in interface ImageInputStream

setByteOrder

public void setByteOrder(ByteOrder byteOrder)
Specified by:
setByteOrder in interface ImageInputStream

skipBytes

public int skipBytes(int num)
            throws IOException
Specified by:
skipBytes in interface ImageInputStream
skipBytes in interface DataInput

skipBytes

public long skipBytes(long num)
            throws IOException
Specified by:
skipBytes in interface ImageInputStream

ImageInputStream.java -- Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.