- 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 int
bitOffset
流中的当前位偏移量。protected ByteOrder
byteOrder
流的字节顺序作为枚举类java.nio.ByteOrder
的实例,其中ByteOrder.BIG_ENDIAN
表示网络字节顺序,ByteOrder.LITTLE_ENDIAN
表示相反顺序。protected long
flushedPos
可以丢弃数据之前的位置。protected long
streamPos
流中的当前读取位置。
-
构造方法摘要
构造方法 构造器 描述 ImageInputStreamImpl()
构造一个ImageInputStreamImpl
。
-
方法摘要
所有方法 实例方法 抽象方法 具体的方法 弃用的方法 变量和类型 方法 描述 protected void
checkClosed()
如果流已关闭,则抛出IOException
。protected void
finalize()
已过时。finalize
方法已被弃用。boolean
isCached()
默认实现返回false。boolean
isCachedFile()
默认实现返回false。boolean
isCachedMemory()
默认实现返回false。long
length()
返回-1L
以指示该流具有未知长度。void
mark()
将当前流位置推到一堆标记位置。abstract int
read()
从流中读取单个字节并将其作为0到255之间的int
返回。int
read(byte[] b)
一种称为read(b, 0, b.length)
便捷方法。abstract int
read(byte[] b, int off, int len)
读取到len
从流字节,并将其存储到b
开始于索引off
。void
reset()
从标记位置堆栈重置当前流字节和位位置。int
skipBytes(int n)
通过致电seek(getStreamPosition() + n)
当前流的位置。long
skipBytes(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.Thefinalize
method has been deprecated. Subclasses that overridefinalize
in order to perform cleanup should be modified to use alternative cleanup mechanisms and to remove the overridingfinalize
method. When overriding thefinalize
method, 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
-
-