- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
-
- 实现的所有接口
-
Closeable,DataInput,AutoCloseable,ImageInputStream
- 已知直接子类:
-
FileCacheImageInputStream,FileImageInputStream,ImageOutputStreamImpl,MemoryCacheImageInputStream
public abstract class ImageInputStreamImpl extends Object implements ImageInputStream
实现ImageInputStream接口的抽象类。 此类旨在减少子类必须实现的方法数。特别是,该类处理字节顺序解释,缓冲,标记/重置,丢弃,关闭和处置的大部分或全部细节。
-
-
字段汇总
字段 变量和类型 字段 描述 protected intbitOffset流中的当前位偏移量。protected ByteOrderbyteOrder流的字节顺序作为枚举类java.nio.ByteOrder的实例,其中ByteOrder.BIG_ENDIAN表示网络字节顺序,ByteOrder.LITTLE_ENDIAN表示相反顺序。protected longflushedPos可以丢弃数据之前的位置。protected longstreamPos流中的当前读取位置。
-
构造方法摘要
构造方法 构造器 描述 ImageInputStreamImpl()构造一个ImageInputStreamImpl。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 弃用的方法 变量和类型 方法 描述 protected voidcheckClosed()如果流已关闭,则抛出IOException。protected voidfinalize()已过时。finalize方法已被弃用。booleanisCached()默认实现返回false。booleanisCachedFile()默认实现返回false。booleanisCachedMemory()默认实现返回false。longlength()返回-1L以指示该流具有未知长度。voidmark()将当前流位置推到一堆标记位置。abstract intread()从流中读取单个字节并将其作为0到255之间的int返回。intread(byte[] b)一种称为read(b, 0, b.length)便捷方法。abstract intread(byte[] b, int off, int len)读取到len从流字节,并将其存储到b开始于索引off。voidreset()从标记位置堆栈重置当前流字节和位位置。intskipBytes(int n)通过致电seek(getStreamPosition() + n)当前流的位置。longskipBytes(long n)通过致电seek(getStreamPosition() + n)当前流的位置。-
声明方法的类 java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
声明方法的接口 javax.imageio.stream.ImageInputStream
close, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, seek, setBitOffset, setByteOrder
-
-
-
-
字段详细信息
-
byteOrder
protected ByteOrder byteOrder
流的字节顺序作为枚举类的实例java.nio.ByteOrder,其中ByteOrder.BIG_ENDIAN表示网络字节顺序,ByteOrder.LITTLE_ENDIAN表示相反顺序。 默认情况下,该值为ByteOrder.BIG_ENDIAN。
-
streamPos
protected long streamPos
流中的当前读取位置。 子类负责将此值保持为它们覆盖的任何改变读取位置的方法的最新值。
-
bitOffset
protected int bitOffset
流中的当前位偏移量。 子类负责将此值保持为它们覆盖的任何改变位偏移的方法的当前值。
-
flushedPos
protected long flushedPos
可以丢弃数据之前的位置。 不允许寻求较小的职位。flushedPos将始终> = 0。
-
-
方法详细信息
-
checkClosed
protected final void checkClosed() throws IOException如果流已关闭,则抛出IOException。 子类可以从任何需要不关闭流的方法中调用此方法。- 异常
-
IOException- 如果流已关闭。
-
read
public abstract int read() throws IOException从流中读取单个字节并将其作为int返回0到255之间。如果达到EOF,则返回-1。子类必须为此方法提供实现。 子类实现应该在退出之前更新流位置。
在发生读取之前,必须将流中的位偏移重置为零。
- Specified by:
-
read在接口ImageInputStream - 结果
-
流中下一个字节的值,如果达到EOF,
-1。 - 异常
-
IOException- 如果流已关闭。
-
read
public int read(byte[] b) throws IOException一种方便的方法,调用read(b, 0, b.length)。在读取发生之前,流中的位偏移被重置为零。
- Specified by:
-
read在接口ImageInputStream - 参数
-
b- 要写入的字节数组。 - 结果
-
实际读取的字节数,或
-1表示EOF。 - 异常
-
NullPointerException- 如果b是null。 -
IOException- 如果发生I / O错误。
-
read
public abstract int read(byte[] b, int off, int len) throws IOException读取到len从流字节,并将其存储到b开始于索引off。 如果由于已到达流的末尾而无法读取任何字节,则返回-1。在发生读取之前,必须将流中的位偏移重置为零。
子类必须为此方法提供实现。 子类实现应该在退出之前更新流位置。
- Specified by:
-
read在接口ImageInputStream - 参数
-
b- 要写入的字节数组。 -
off- 写入内容的b内的起始位置 -
len- 要读取的最大字节数。 - 结果
-
实际读取的字节数,或
-1表示EOF。 - 异常
-
IndexOutOfBoundsException- 如果off为负数,则len为负数,或off + len为大于b.length。 -
NullPointerException- 如果b是null。 -
IOException- 如果发生I / O错误。
-
length
public long length()
返回-1L以指示该流具有未知长度。 子类必须覆盖此方法以提供实际长度信息。- Specified by:
-
length在接口ImageInputStream - 结果
- -1L表示未知长度。
-
skipBytes
public int skipBytes(int n) throws IOException通过致电seek(getStreamPosition() + n)当前流的位置。位偏移重置为零。
- Specified by:
-
skipBytes在接口DataInput - Specified by:
-
skipBytes接口ImageInputStream - 参数
-
n- 要转发的字节数。 - 结果
-
表示跳过的字节数的
int。 - 异常
-
IOException- 如果getStreamPosition在计算起始位置或结束位置时抛出IOException。
-
skipBytes
public long skipBytes(long n) throws IOException通过调用seek(getStreamPosition() + n)当前流的位置。位偏移重置为零。
- Specified by:
-
skipBytes在接口ImageInputStream - 参数
-
n- 要转发的字节数。 - 结果
-
表示跳过的字节数的
long。 - 异常
-
IOException- 如果getStreamPosition在计算起始位置或结束位置时抛出IOException。
-
mark
public void mark()
将当前流位置推到一堆标记位置。- Specified by:
-
mark在接口ImageInputStream
-
reset
public void reset() throws IOException从标记位置堆栈重置当前流字节和位位置。如果先前标记的位置位于流的丢弃部分中,则将抛出
IOException。- Specified by:
-
reset接口ImageInputStream - 异常
-
IOException- 如果发生I / O错误。
-
isCached
public boolean isCached()
默认实现返回false。 如果子类缓存数据,则应重写此类。- Specified by:
-
isCached在接口ImageInputStream - 结果
-
true如果这个ImageInputStream缓存数据。 - 另请参见:
-
ImageInputStream.isCachedMemory(),ImageInputStream.isCachedFile()
-
isCachedMemory
public boolean isCachedMemory()
默认实现返回false。 如果子类在主内存中缓存数据,则应重写此类。- Specified by:
-
isCachedMemory在接口ImageInputStream - 结果
-
true如果此ImageInputStream数据缓存在主内存中。 - 另请参见:
-
ImageInputStream.isCached(),ImageInputStream.isCachedFile()
-
isCachedFile
public boolean isCachedFile()
默认实现返回false。 如果子类将数据缓存在临时文件中,则子类应覆盖此类。- Specified by:
-
isCachedFile在接口ImageInputStream - 结果
-
true如果此ImageInputStream数据缓存在临时文件中。 - 另请参见:
-
ImageInputStream.isCached(),ImageInputStream.isCachedMemory()
-
finalize
@Deprecated(since="9") protected void finalize() throws Throwable
Deprecated.Thefinalizemethod has been deprecated. Subclasses that overridefinalizein order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overridingfinalizemethod. When overriding thefinalizemethod, its implementation must explicitly ensure thatsuper.finalize()is invoked as described inObject.finalize(). See the specification forObject.finalize()for further information about migration options.在垃圾回收之前完成此对象。 调用close方法关闭任何打开的输入源。 不应从应用程序代码调用此方法。- 重写:
-
finalize类Object - 异常
-
Throwable- 如果在超类完成期间发生错误。 - 另请参见:
-
WeakReference,PhantomReference
-
-