Package com.sun.media.imageio.stream
Class FileChannelImageInputStream
java.lang.Object
javax.imageio.stream.ImageInputStreamImpl
com.sun.media.imageio.stream.FileChannelImageInputStream
- All Implemented Interfaces:
Closeable,DataInput,AutoCloseable,ImageInputStream
A class which implements
ImageInputStream using a
FileChannel as the eventual data source. The channel
contents are assumed to be stable during the lifetime of the object.
Memory mapping and new I/O view Buffers are used to
read the data. Only methods which provide significant performance
improvement with respect to the superclass implementation are overridden.
Overridden methods are not commented individually unless some noteworthy
aspect of the implementation must be described.
The methods of this class are not synchronized.
- See Also:
-
Field Summary
Fields inherited from class javax.imageio.stream.ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos -
Constructor Summary
ConstructorsConstructorDescriptionFileChannelImageInputStream(FileChannel channel) Constructs aFileChannelImageInputStreamfrom aFileChannel. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Invokes the superclass method and sets the internal reference to the sourceFileChanneltonull.longlength()Returns the number of bytes currently in theFileChannel.intread()intread(byte[] b, int off, int len) voidreadFully(char[] c, int off, int len) voidreadFully(double[] d, int off, int len) voidreadFully(float[] f, int off, int len) voidreadFully(int[] i, int off, int len) voidreadFully(long[] l, int off, int len) voidreadFully(short[] s, int off, int len) voidseek(long pos) Invokes the superclass method and sets the position within the memory mapped buffer.voidsetByteOrder(ByteOrder networkByteOrder) Methods inherited from class javax.imageio.stream.ImageInputStreamImpl
checkClosed, finalize, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, isCached, isCachedFile, isCachedMemory, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, setBitOffset, skipBytes, skipBytes
-
Constructor Details
-
FileChannelImageInputStream
Constructs aFileChannelImageInputStreamfrom aFileChannel. The initial position of the stream stream is taken to be the position of theFileChannelparameter when this constructor is invoked. The stream and flushed positions are therefore both initialized tochannel.position().- Parameters:
channel- the sourceFileChannel.- Throws:
IllegalArgumentException- ifchannelisnullor is not open.IOException- if a method invoked onchannelthrows anIOException.
-
-
Method Details
-
read
- Specified by:
readin interfaceImageInputStream- Specified by:
readin classImageInputStreamImpl- Throws:
IOException
-
read
- Specified by:
readin interfaceImageInputStream- Specified by:
readin classImageInputStreamImpl- Throws:
IOException
-
close
Invokes the superclass method and sets the internal reference to the sourceFileChanneltonull. The sourceFileChannelis not closed.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceImageInputStream- Overrides:
closein classImageInputStreamImpl- Throws:
IOException- if an error occurs.
-
readFully
- Specified by:
readFullyin interfaceImageInputStream- Overrides:
readFullyin classImageInputStreamImpl- Throws:
IOException
-
readFully
- Specified by:
readFullyin interfaceImageInputStream- Overrides:
readFullyin classImageInputStreamImpl- Throws:
IOException
-
readFully
- Specified by:
readFullyin interfaceImageInputStream- Overrides:
readFullyin classImageInputStreamImpl- Throws:
IOException
-
readFully
- Specified by:
readFullyin interfaceImageInputStream- Overrides:
readFullyin classImageInputStreamImpl- Throws:
IOException
-
readFully
- Specified by:
readFullyin interfaceImageInputStream- Overrides:
readFullyin classImageInputStreamImpl- Throws:
IOException
-
readFully
- Specified by:
readFullyin interfaceImageInputStream- Overrides:
readFullyin classImageInputStreamImpl- Throws:
IOException
-
length
public long length()Returns the number of bytes currently in theFileChannel. If anIOExceptionis encountered when querying the channel's size, -1L will be returned.- Specified by:
lengthin interfaceImageInputStream- Overrides:
lengthin classImageInputStreamImpl- Returns:
- The number of bytes in the channel -1L to indicate unknown length.
-
seek
Invokes the superclass method and sets the position within the memory mapped buffer. A new region is mapped if necessary. The position of the sourceFileChannelis not changed, i.e.,FileChannel.position(long)is not invoked.- Specified by:
seekin interfaceImageInputStream- Overrides:
seekin classImageInputStreamImpl- Throws:
IOException
-
setByteOrder
- Specified by:
setByteOrderin interfaceImageInputStream- Overrides:
setByteOrderin classImageInputStreamImpl
-