java.lang.Object javax.imageio.stream.ImageInputStreamImpl javax.imageio.stream.ImageOutputStreamImpl javax.imageio.stream.FileCacheImageOutputStream
public class FileCacheImageOutputStream
An implementation of ImageOutputStream that writes its output to a regular OutputStream. A file is used to cache data until it is flushed to the output stream.
Field Summary |
---|
Fields inherited from class javax.imageio.stream. ImageInputStreamImpl |
---|
bitOffset , byteOrder , flushedPos , streamPos |
Constructor Summary | |
---|---|
FileCacheImageOutputStream
(
OutputStream
stream,
File
cacheDir) Constructs a FileCacheImageOutputStream that will write to a given outputStream. |
Method Summary | |
---|---|
void |
close
() Closes this FileCacheImageOututStream. |
void |
flushBefore
(long pos) Discards the initial portion of the stream prior to the indicated postion. |
boolean |
isCached
() Returns true since this ImageOutputStream caches data in order to allow seeking backwards. |
boolean |
isCachedFile
() Returns true since this ImageOutputStream maintains a file cache. |
boolean |
isCachedMemory
() Returns false since this ImageOutputStream does not maintain a main memory cache. |
long |
length
() Returns -1L to indicate that the stream has unknown length. |
int |
read
() Reads a single byte from the stream and returns it as an int |
int |
read
(byte[] b, int off, int len) Reads up to len bytes from the stream, and stores them into b starting at index off. |
void |
seek
(long pos) Sets the current stream position and resets the bit offset to 0. |
void |
write
(byte[] b, int off, int len) Writes a sequence of bytes to the stream at the current position. |
void |
write
(int b) Writes a single byte to the stream at the current position. |
Methods inherited from class javax.imageio.stream. ImageOutputStreamImpl |
---|
flushBits , write , writeBit , writeBits , writeBoolean , writeByte , writeBytes , writeChar , writeChars , writeChars , writeDouble , writeDoubles , writeFloat , writeFloats , writeInt , writeInts , writeLong , writeLongs , writeShort , writeShorts , writeUTF |
Methods inherited from class javax.imageio.stream. ImageInputStreamImpl |
---|
checkClosed , finalize , flush , getBitOffset , getByteOrder , getFlushedPosition , getStreamPosition , mark , read , readBit , readBits , readBoolean , readByte , readBytes , readChar , readDouble , readFloat , readFully , readFully , readFully , readFully , readFully , readFully , readFully , readFully , readInt , readLine , readLong , readShort , readUnsignedByte , readUnsignedInt , readUnsignedShort , readUTF , reset , setBitOffset , setByteOrder , skipBytes , skipBytes |
Methods inherited from class java.lang. Object |
---|
clone , equals , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
Methods inherited from interface javax.imageio.stream. ImageInputStream |
---|
flush , getBitOffset , getByteOrder , getFlushedPosition , getStreamPosition , mark , read , readBit , readBits , readBoolean , readByte , readBytes , readChar , readDouble , readFloat , readFully , readFully , readFully , readFully , readFully , readFully , readFully , readFully , readInt , readLine , readLong , readShort , readUnsignedByte , readUnsignedInt , readUnsignedShort , readUTF , reset , setBitOffset , setByteOrder , skipBytes , skipBytes |
Constructor Detail |
---|
public FileCacheImageOutputStream(OutputStream stream, File cacheDir) throws IOException
A temporary file is used as a cache. If cacheDiris non-null and is a directory, the file will be created there. If it is null, the system-dependent default temporary-file directory will be used (see the documentation for File.createTempFile for details).
Method Detail |
---|
public int read() throws IOException
Subclasses must provide an implementation for this method. The subclass implementation should update the stream position before exiting.
The bit offset within the stream is reset to zero before the read occurs.
The bit offset within the stream must be reset to zero before the read occurs.
public int read(byte[] b, int off, int len) throws IOException
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.
public void write(int b) throws IOException
If the bit offset within the stream is non-zero, the remainder of the current byte is padded with 0s and written out first. The bit offset will be 0 after the write. Implementers can use the flushBits method of ImageOutputStreamImpl to guarantee this.
public void write(byte[] b, int off, int len) throws IOException
If the bit offset within the stream is non-zero, the remainder of the current byte is padded with 0s and written out first. The bit offset will be 0 after the write. Implementers can use the flushBits method of ImageOutputStreamImpl to guarantee this.
public long length()
public void seek(long pos) throws IOException
public boolean isCached()
public boolean isCachedFile()
public boolean isCachedMemory()
public void close() throws IOException
public void flushBefore(long pos) throws IOException
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.