Package com.sun.media.imageio.stream
Class FileChannelImageInputStream
- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
-
- com.sun.media.imageio.stream.FileChannelImageInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.DataInput,java.lang.AutoCloseable,javax.imageio.stream.ImageInputStream
public class FileChannelImageInputStream extends javax.imageio.stream.ImageInputStreamImplA class which implementsImageInputStreamusing aFileChannelas 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:
ImageInputStream,java.nio,FileChannel
-
-
Constructor Summary
Constructors Constructor Description FileChannelImageInputStream(java.nio.channels.FileChannel channel)Constructs aFileChannelImageInputStreamfrom aFileChannel.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()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(java.nio.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 Detail
-
FileChannelImageInputStream
public FileChannelImageInputStream(java.nio.channels.FileChannel channel) throws java.io.IOExceptionConstructs 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:
java.lang.IllegalArgumentException- ifchannelisnullor is not open.java.io.IOException- if a method invoked onchannelthrows anIOException.
-
-
Method Detail
-
read
public int read() throws java.io.IOException- Specified by:
readin interfacejavax.imageio.stream.ImageInputStream- Specified by:
readin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Specified by:
readin interfacejavax.imageio.stream.ImageInputStream- Specified by:
readin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOExceptionInvokes the superclass method and sets the internal reference to the sourceFileChanneltonull. The sourceFileChannelis not closed.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfacejavax.imageio.stream.ImageInputStream- Overrides:
closein classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException- if an error occurs.
-
readFully
public void readFully(char[] c, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejavax.imageio.stream.ImageInputStream- Overrides:
readFullyin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
readFully
public void readFully(short[] s, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejavax.imageio.stream.ImageInputStream- Overrides:
readFullyin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
readFully
public void readFully(int[] i, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejavax.imageio.stream.ImageInputStream- Overrides:
readFullyin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
readFully
public void readFully(long[] l, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejavax.imageio.stream.ImageInputStream- Overrides:
readFullyin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
readFully
public void readFully(float[] f, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejavax.imageio.stream.ImageInputStream- Overrides:
readFullyin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
readFully
public void readFully(double[] d, int off, int len) throws java.io.IOException- Specified by:
readFullyin interfacejavax.imageio.stream.ImageInputStream- Overrides:
readFullyin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.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 interfacejavax.imageio.stream.ImageInputStream- Overrides:
lengthin classjavax.imageio.stream.ImageInputStreamImpl- Returns:
- The number of bytes in the channel -1L to indicate unknown length.
-
seek
public void seek(long pos) throws java.io.IOExceptionInvokes 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 interfacejavax.imageio.stream.ImageInputStream- Overrides:
seekin classjavax.imageio.stream.ImageInputStreamImpl- Throws:
java.io.IOException
-
setByteOrder
public void setByteOrder(java.nio.ByteOrder networkByteOrder)
- Specified by:
setByteOrderin interfacejavax.imageio.stream.ImageInputStream- Overrides:
setByteOrderin classjavax.imageio.stream.ImageInputStreamImpl
-
-