javax.imageio.stream
Class MemoryCacheImageInputStream

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by javax.imageio.stream.ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl 
      extended by javax.imageio.stream.MemoryCacheImageInputStream
All Implemented Interfaces:
DataInput sample code for java.io.DataInput definition code for java.io.DataInput , ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream

public class MemoryCacheImageInputStream
extends ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl

An implementation of ImageInputStream that gets its input from a regular InputStream. A memory buffer is used to cache at least the data between the discard position and the current read position.

In general, it is preferable to use a FileCacheImageInputStream when reading from a regular InputStream. This class is provided for cases where it is not possible to create a writable temporary file.


Field Summary
 
Fields inherited from class javax.imageio.stream.ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
bitOffset sample code for javax.imageio.stream.ImageInputStreamImpl.bitOffset definition code for javax.imageio.stream.ImageInputStreamImpl.bitOffset , byteOrder sample code for javax.imageio.stream.ImageInputStreamImpl.byteOrder definition code for javax.imageio.stream.ImageInputStreamImpl.byteOrder , flushedPos sample code for javax.imageio.stream.ImageInputStreamImpl.flushedPos definition code for javax.imageio.stream.ImageInputStreamImpl.flushedPos , streamPos sample code for javax.imageio.stream.ImageInputStreamImpl.streamPos definition code for javax.imageio.stream.ImageInputStreamImpl.streamPos
 
Constructor Summary
MemoryCacheImageInputStream sample code for javax.imageio.stream.MemoryCacheImageInputStream.MemoryCacheImageInputStream(java.io.InputStream) definition code for javax.imageio.stream.MemoryCacheImageInputStream.MemoryCacheImageInputStream(java.io.InputStream) (InputStream sample code for java.io.InputStream definition code for java.io.InputStream  stream)
          Constructs a MemoryCacheImageInputStream that will read from a given InputStream.
 
Method Summary
 void close sample code for javax.imageio.stream.MemoryCacheImageInputStream.close() definition code for javax.imageio.stream.MemoryCacheImageInputStream.close() ()
          Closes this MemoryCacheImageInputStream, freeing the cache.
 void flushBefore sample code for javax.imageio.stream.MemoryCacheImageInputStream.flushBefore(long) definition code for javax.imageio.stream.MemoryCacheImageInputStream.flushBefore(long) (long pos)
          Discards the initial portion of the stream prior to the indicated postion.
 boolean isCached sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCached() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCached() ()
          Returns true since this ImageInputStream caches data in order to allow seeking backwards.
 boolean isCachedFile sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile() ()
          Returns false since this ImageInputStream does not maintain a file cache.
 boolean isCachedMemory sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory() ()
          Returns true since this ImageInputStream maintains a main memory cache.
 int read sample code for javax.imageio.stream.MemoryCacheImageInputStream.read() definition code for javax.imageio.stream.MemoryCacheImageInputStream.read() ()
          Reads a single byte from the stream and returns it as an integer between 0 and 255.
 int read sample code for javax.imageio.stream.MemoryCacheImageInputStream.read(byte[], int, int) definition code for javax.imageio.stream.MemoryCacheImageInputStream.read(byte[], int, int) (byte[] b, int off, int len)
          Reads up to len bytes from the stream, and stores them into b starting at index off.
 
Methods inherited from class javax.imageio.stream.ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
checkClosed sample code for javax.imageio.stream.ImageInputStreamImpl.checkClosed() definition code for javax.imageio.stream.ImageInputStreamImpl.checkClosed() , finalize sample code for javax.imageio.stream.ImageInputStreamImpl.finalize() definition code for javax.imageio.stream.ImageInputStreamImpl.finalize() , flush sample code for javax.imageio.stream.ImageInputStreamImpl.flush() definition code for javax.imageio.stream.ImageInputStreamImpl.flush() , getBitOffset sample code for javax.imageio.stream.ImageInputStreamImpl.getBitOffset() definition code for javax.imageio.stream.ImageInputStreamImpl.getBitOffset() , getByteOrder sample code for javax.imageio.stream.ImageInputStreamImpl.getByteOrder() definition code for javax.imageio.stream.ImageInputStreamImpl.getByteOrder() , getFlushedPosition sample code for javax.imageio.stream.ImageInputStreamImpl.getFlushedPosition() definition code for javax.imageio.stream.ImageInputStreamImpl.getFlushedPosition() , getStreamPosition sample code for javax.imageio.stream.ImageInputStreamImpl.getStreamPosition() definition code for javax.imageio.stream.ImageInputStreamImpl.getStreamPosition() , length sample code for javax.imageio.stream.ImageInputStreamImpl.length() definition code for javax.imageio.stream.ImageInputStreamImpl.length() , mark sample code for javax.imageio.stream.ImageInputStreamImpl.mark() definition code for javax.imageio.stream.ImageInputStreamImpl.mark() , read sample code for javax.imageio.stream.ImageInputStreamImpl.read(byte[]) definition code for javax.imageio.stream.ImageInputStreamImpl.read(byte[]) , readBit sample code for javax.imageio.stream.ImageInputStreamImpl.readBit() definition code for javax.imageio.stream.ImageInputStreamImpl.readBit() , readBits sample code for javax.imageio.stream.ImageInputStreamImpl.readBits(int) definition code for javax.imageio.stream.ImageInputStreamImpl.readBits(int) , readBoolean sample code for javax.imageio.stream.ImageInputStreamImpl.readBoolean() definition code for javax.imageio.stream.ImageInputStreamImpl.readBoolean() , readByte sample code for javax.imageio.stream.ImageInputStreamImpl.readByte() definition code for javax.imageio.stream.ImageInputStreamImpl.readByte() , readBytes sample code for javax.imageio.stream.ImageInputStreamImpl.readBytes(javax.imageio.stream.IIOByteBuffer, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readBytes(javax.imageio.stream.IIOByteBuffer, int) , readChar sample code for javax.imageio.stream.ImageInputStreamImpl.readChar() definition code for javax.imageio.stream.ImageInputStreamImpl.readChar() , readDouble sample code for javax.imageio.stream.ImageInputStreamImpl.readDouble() definition code for javax.imageio.stream.ImageInputStreamImpl.readDouble() , readFloat sample code for javax.imageio.stream.ImageInputStreamImpl.readFloat() definition code for javax.imageio.stream.ImageInputStreamImpl.readFloat() , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(byte[]) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(byte[]) , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(byte[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(byte[], int, int) , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(char[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(char[], int, int) , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(double[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(double[], int, int) , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(float[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(float[], int, int) , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(int[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(int[], int, int) , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(long[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(long[], int, int) , readFully sample code for javax.imageio.stream.ImageInputStreamImpl.readFully(short[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.readFully(short[], int, int) , readInt sample code for javax.imageio.stream.ImageInputStreamImpl.readInt() definition code for javax.imageio.stream.ImageInputStreamImpl.readInt() , readLine sample code for javax.imageio.stream.ImageInputStreamImpl.readLine() definition code for javax.imageio.stream.ImageInputStreamImpl.readLine() , readLong sample code for javax.imageio.stream.ImageInputStreamImpl.readLong() definition code for javax.imageio.stream.ImageInputStreamImpl.readLong() , readShort sample code for javax.imageio.stream.ImageInputStreamImpl.readShort() definition code for javax.imageio.stream.ImageInputStreamImpl.readShort() , readUnsignedByte sample code for javax.imageio.stream.ImageInputStreamImpl.readUnsignedByte() definition code for javax.imageio.stream.ImageInputStreamImpl.readUnsignedByte() , readUnsignedInt sample code for javax.imageio.stream.ImageInputStreamImpl.readUnsignedInt() definition code for javax.imageio.stream.ImageInputStreamImpl.readUnsignedInt() , readUnsignedShort sample code for javax.imageio.stream.ImageInputStreamImpl.readUnsignedShort() definition code for javax.imageio.stream.ImageInputStreamImpl.readUnsignedShort() , readUTF sample code for javax.imageio.stream.ImageInputStreamImpl.readUTF() definition code for javax.imageio.stream.ImageInputStreamImpl.readUTF() , reset sample code for javax.imageio.stream.ImageInputStreamImpl.reset() definition code for javax.imageio.stream.ImageInputStreamImpl.reset() , seek sample code for javax.imageio.stream.ImageInputStreamImpl.seek(long) definition code for javax.imageio.stream.ImageInputStreamImpl.seek(long) , setBitOffset sample code for javax.imageio.stream.ImageInputStreamImpl.setBitOffset(int) definition code for javax.imageio.stream.ImageInputStreamImpl.setBitOffset(int) , setByteOrder sample code for javax.imageio.stream.ImageInputStreamImpl.setByteOrder(java.nio.ByteOrder) definition code for javax.imageio.stream.ImageInputStreamImpl.setByteOrder(java.nio.ByteOrder) , skipBytes sample code for javax.imageio.stream.ImageInputStreamImpl.skipBytes(int) definition code for javax.imageio.stream.ImageInputStreamImpl.skipBytes(int) , skipBytes sample code for javax.imageio.stream.ImageInputStreamImpl.skipBytes(long) definition code for javax.imageio.stream.ImageInputStreamImpl.skipBytes(long)
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , toString sample code for java.lang.Object.toString() definition code for java.lang.Object.toString() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 

Constructor Detail

MemoryCacheImageInputStream sample code for javax.imageio.stream.MemoryCacheImageInputStream(java.io.InputStream) definition code for javax.imageio.stream.MemoryCacheImageInputStream(java.io.InputStream)

public MemoryCacheImageInputStream(InputStream sample code for java.io.InputStream definition code for java.io.InputStream  stream)
Constructs a MemoryCacheImageInputStream that will read from a given InputStream.

Parameters:
stream - an InputStream to read from.
Throws:
IllegalArgumentException sample code for java.lang.IllegalArgumentException definition code for java.lang.IllegalArgumentException - if stream is null.
Method Detail

read sample code for javax.imageio.stream.MemoryCacheImageInputStream.read() definition code for javax.imageio.stream.MemoryCacheImageInputStream.read()

public int read()
         throws IOException sample code for java.io.IOException definition code for java.io.IOException 
Description copied from interface: ImageInputStream sample code for javax.imageio.stream.ImageInputStream.read() definition code for javax.imageio.stream.ImageInputStream.read()
Reads a single byte from the stream and returns it as an integer between 0 and 255. If the end of the stream is reached, -1 is returned.

The bit offset within the stream is reset to zero before the read occurs.

Specified by:
read sample code for javax.imageio.stream.ImageInputStream.read() definition code for javax.imageio.stream.ImageInputStream.read() in interface ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream
Specified by:
read sample code for javax.imageio.stream.ImageInputStreamImpl.read() definition code for javax.imageio.stream.ImageInputStreamImpl.read() in class ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
Returns:
a byte value from the stream, as an int, or -1 to indicate EOF.
Throws:
IOException sample code for java.io.IOException definition code for java.io.IOException - if an I/O error occurs.

read sample code for javax.imageio.stream.MemoryCacheImageInputStream.read(byte[], int, int) definition code for javax.imageio.stream.MemoryCacheImageInputStream.read(byte[], int, int)

public int read(byte[] b,
                int off,
                int len)
         throws IOException sample code for java.io.IOException definition code for java.io.IOException 
Description copied from class: ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl.read(byte[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.read(byte[], int, int)
Reads up to len bytes from the stream, and stores them into b starting at index off. If no bytes can be read because the end of the stream has been reached, -1 is returned.

The bit offset within the stream must be reset to zero before the read occurs.

Subclasses must provide an implementation for this method. The subclass implementation should update the stream position before exiting.

Specified by:
read sample code for javax.imageio.stream.ImageInputStream.read(byte[], int, int) definition code for javax.imageio.stream.ImageInputStream.read(byte[], int, int) in interface ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream
Specified by:
read sample code for javax.imageio.stream.ImageInputStreamImpl.read(byte[], int, int) definition code for javax.imageio.stream.ImageInputStreamImpl.read(byte[], int, int) in class ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
Parameters:
b - an array of bytes to be written to.
off - the starting position within b to write to.
len - the maximum number of bytes to read.
Returns:
the number of bytes actually read, or -1 to indicate EOF.
Throws:
IOException sample code for java.io.IOException definition code for java.io.IOException - if an I/O error occurs.

flushBefore sample code for javax.imageio.stream.MemoryCacheImageInputStream.flushBefore(long) definition code for javax.imageio.stream.MemoryCacheImageInputStream.flushBefore(long)

public void flushBefore(long pos)
                 throws IOException sample code for java.io.IOException definition code for java.io.IOException 
Description copied from interface: ImageInputStream sample code for javax.imageio.stream.ImageInputStream.flushBefore(long) definition code for javax.imageio.stream.ImageInputStream.flushBefore(long)
Discards the initial portion of the stream prior to the indicated postion. Attempting to seek to an offset within the flushed portion of the stream will result in an IndexOutOfBoundsException.

Calling flushBefore may allow classes implementing this interface to free up resources such as memory or disk space that are being used to store data from the stream.

Specified by:
flushBefore sample code for javax.imageio.stream.ImageInputStream.flushBefore(long) definition code for javax.imageio.stream.ImageInputStream.flushBefore(long) in interface ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream
Overrides:
flushBefore sample code for javax.imageio.stream.ImageInputStreamImpl.flushBefore(long) definition code for javax.imageio.stream.ImageInputStreamImpl.flushBefore(long) in class ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
Parameters:
pos - a long containing the length of the file prefix that may be flushed.
Throws:
IOException sample code for java.io.IOException definition code for java.io.IOException - if an I/O error occurs.

isCached sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCached() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCached()

public boolean isCached()
Returns true since this ImageInputStream caches data in order to allow seeking backwards.

Specified by:
isCached sample code for javax.imageio.stream.ImageInputStream.isCached() definition code for javax.imageio.stream.ImageInputStream.isCached() in interface ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream
Overrides:
isCached sample code for javax.imageio.stream.ImageInputStreamImpl.isCached() definition code for javax.imageio.stream.ImageInputStreamImpl.isCached() in class ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
Returns:
true.
See Also:
isCachedMemory() sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory() , isCachedFile() sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile()

isCachedFile sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile()

public boolean isCachedFile()
Returns false since this ImageInputStream does not maintain a file cache.

Specified by:
isCachedFile sample code for javax.imageio.stream.ImageInputStream.isCachedFile() definition code for javax.imageio.stream.ImageInputStream.isCachedFile() in interface ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream
Overrides:
isCachedFile sample code for javax.imageio.stream.ImageInputStreamImpl.isCachedFile() definition code for javax.imageio.stream.ImageInputStreamImpl.isCachedFile() in class ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
Returns:
false.
See Also:
isCached() sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCached() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCached() , isCachedMemory() sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory()

isCachedMemory sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedMemory()

public boolean isCachedMemory()
Returns true since this ImageInputStream maintains a main memory cache.

Specified by:
isCachedMemory sample code for javax.imageio.stream.ImageInputStream.isCachedMemory() definition code for javax.imageio.stream.ImageInputStream.isCachedMemory() in interface ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream
Overrides:
isCachedMemory sample code for javax.imageio.stream.ImageInputStreamImpl.isCachedMemory() definition code for javax.imageio.stream.ImageInputStreamImpl.isCachedMemory() in class ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
Returns:
true.
See Also:
isCached() sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCached() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCached() , isCachedFile() sample code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile() definition code for javax.imageio.stream.MemoryCacheImageInputStream.isCachedFile()

close sample code for javax.imageio.stream.MemoryCacheImageInputStream.close() definition code for javax.imageio.stream.MemoryCacheImageInputStream.close()

public void close()
           throws IOException sample code for java.io.IOException definition code for java.io.IOException 
Closes this MemoryCacheImageInputStream, freeing the cache. The source InputStream is not closed.

Specified by:
close sample code for javax.imageio.stream.ImageInputStream.close() definition code for javax.imageio.stream.ImageInputStream.close() in interface ImageInputStream sample code for javax.imageio.stream.ImageInputStream definition code for javax.imageio.stream.ImageInputStream
Overrides:
close sample code for javax.imageio.stream.ImageInputStreamImpl.close() definition code for javax.imageio.stream.ImageInputStreamImpl.close() in class ImageInputStreamImpl sample code for javax.imageio.stream.ImageInputStreamImpl definition code for javax.imageio.stream.ImageInputStreamImpl
Throws:
IOException sample code for java.io.IOException definition code for java.io.IOException - if an I/O error occurs.