- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
-
- javax.imageio.stream.ImageOutputStreamImpl
-
- javax.imageio.stream.MemoryCacheImageOutputStream
-
- All Implemented Interfaces:
Closeable
,DataInput
,DataOutput
,AutoCloseable
,ImageInputStream
,ImageOutputStream
public class MemoryCacheImageOutputStream extends ImageOutputStreamImpl
An implementation ofImageOutputStream
that writes its output to a regularOutputStream
. A memory buffer is used to cache at least the data between the discard position and the current write position. The only constructor takes anOutputStream
, so this class may not be used for read/modify/write operations. Reading can occur only on parts of the stream that have already been written to the cache and not yet flushed.
-
-
Field Summary
-
Fields declared in class javax.imageio.stream.ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos
-
-
Constructor Summary
Constructors Constructor Description MemoryCacheImageOutputStream(OutputStream stream)
Constructs aMemoryCacheImageOutputStream
that will write to a givenOutputStream
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Closes thisMemoryCacheImageOutputStream
.boolean
isCached()
Returnstrue
since thisImageOutputStream
caches data in order to allow seeking backwards.boolean
isCachedFile()
Returnsfalse
since thisImageOutputStream
does not maintain a file cache.boolean
isCachedMemory()
Returnstrue
since thisImageOutputStream
maintains a main memory cache.-
Methods declared in interface javax.imageio.stream.ImageInputStream
flush, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, length, mark, read, read, 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, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
-
Methods declared in class javax.imageio.stream.ImageInputStreamImpl
checkClosed, finalize, length, mark, read, read, read, reset, skipBytes, skipBytes
-
Methods declared in interface javax.imageio.stream.ImageOutputStream
flushBefore, write, write, write, writeBit, writeBits, writeBoolean, writeByte, writeBytes, writeChar, writeChars, writeChars, writeDouble, writeDoubles, writeFloat, writeFloats, writeInt, writeInts, writeLong, writeLongs, writeShort, writeShorts, writeUTF
-
Methods declared in class javax.imageio.stream.ImageOutputStreamImpl
flushBits
-
-
-
-
Constructor Detail
-
MemoryCacheImageOutputStream
public MemoryCacheImageOutputStream(OutputStream stream)
Constructs aMemoryCacheImageOutputStream
that will write to a givenOutputStream
.- Parameters:
stream
- anOutputStream
to write to.- Throws:
IllegalArgumentException
- ifstream
isnull
.
-
-
Method Detail
-
isCached
public boolean isCached()
Returnstrue
since thisImageOutputStream
caches data in order to allow seeking backwards.- Specified by:
isCached
in interfaceImageInputStream
- Overrides:
isCached
in classImageInputStreamImpl
- Returns:
true
.- See Also:
isCachedMemory()
,isCachedFile()
-
isCachedFile
public boolean isCachedFile()
Returnsfalse
since thisImageOutputStream
does not maintain a file cache.- Specified by:
isCachedFile
in interfaceImageInputStream
- Overrides:
isCachedFile
in classImageInputStreamImpl
- Returns:
false
.- See Also:
isCached()
,isCachedMemory()
-
isCachedMemory
public boolean isCachedMemory()
Returnstrue
since thisImageOutputStream
maintains a main memory cache.- Specified by:
isCachedMemory
in interfaceImageInputStream
- Overrides:
isCachedMemory
in classImageInputStreamImpl
- Returns:
true
.- See Also:
isCached()
,isCachedFile()
-
close
public void close() throws IOException
Closes thisMemoryCacheImageOutputStream
. All pending data is flushed to the output, and the cache is released. The destinationOutputStream
is not closed.- Throws:
IOException
- if an I/O error occurs.
-
-