- 所有已实现的接口:
-
Closeable
,DataInput
,AutoCloseable
,ImageInputStream
- 直接已知的子类:
-
FileCacheImageInputStream
,FileImageInputStream
,ImageOutputStreamImpl
,MemoryCacheImageInputStream
ImageInputStream
接口的抽象类。该类旨在减少子类必须实现的方法数量。
特别是,该类处理大部分或全部的字节顺序解释、缓冲、标记/重置、丢弃、关闭和处理细节。
-
Field Summary
Modifier and TypeFieldDescriptionprotected int
流中的当前位偏移量。protected ByteOrder
流的字节顺序,作为枚举类java.nio.ByteOrder
的实例,其中ByteOrder.BIG_ENDIAN
表示网络字节顺序,ByteOrder.LITTLE_ENDIAN
表示反向顺序。protected long
可丢弃数据的位置之前。protected long
流中的当前读取位置。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected final void
如果流已关闭,则抛出IOException
。void
close()
关闭流。protected void
finalize()
已弃用,将来会移除: 该API元素可能在将来的版本中被移除。已弃用终结。void
flush()
丢弃当前流位置之前的初始位置。void
flushBefore
(long pos) 丢弃指定位置之前的流的初始部分。int
返回当前位偏移量,作为介于0和7之间的整数。返回数据值将从该流中读取的字节顺序,作为java.nio.ByteOrder
枚举的实例。long
返回可以执行寻址的流中最早的位置。long
返回流的当前字节位置。boolean
isCached()
默认实现返回false。boolean
默认实现返回false。boolean
默认实现返回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
字节,并将它们存储到从索引off
开始的b
中。int
readBit()
从流中读取一个位并将其作为值为0
或1
的int
返回。long
readBits
(int numBits) 从流中读取一个位串,并将其作为long
返回,其中读取的第一个位成为输出的最高有效位。boolean
从流中读取一个字节并返回一个boolean
值,如果不为零则返回true
,如果为零则返回false
。byte
readByte()
从流中读取一个字节并将其作为byte
值返回。void
readBytes
(IIOByteBuffer buf, int len) 从流中读取最多len
字节,并修改提供的IIOByteBuffer
以指示可以找到数据的字节数组、偏移量和长度。char
readChar()
等效于readUnsignedShort
,只是使用char
数据类型返回结果。double
从流中读取8个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为double
返回。float
从流中读取4个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为float
返回。void
readFully
(byte[] b) 从流中读取b.length
字节,并将它们存储到从索引0
开始的b
中。void
readFully
(byte[] b, int off, int len) 从流中读取len
字节,并将它们存储到从索引off
开始的b
中。void
readFully
(char[] c, int off, int len) 根据当前字节顺序从流中读取len
个字符(无符号16位整数),并将它们存储到从索引off
开始的c
中。void
readFully
(double[] d, int off, int len) 根据当前字节顺序从流中读取len
个双精度(64位IEEE双精度浮点数),并将它们存储到从索引off
开始的d
中。void
readFully
(float[] f, int off, int len) 根据当前字节顺序从流中读取len
个单精度(32位IEEE单精度浮点数),并将它们存储到从索引off
开始的f
中。void
readFully
(int[] i, int off, int len) 根据当前字节顺序从流中读取len
个有符号32位整数,并将它们存储到从索引off
开始的i
中。void
readFully
(long[] l, int off, int len) 根据当前字节顺序从流中读取len
个有符号64位整数,并将它们存储到从索引off
开始的l
中。void
readFully
(short[] s, int off, int len) 根据当前字节顺序从流中读取len
个有符号16位整数,并将它们存储到从索引off
开始的s
中。int
readInt()
从流中读取4个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为int
返回。readLine()
从输入流中读取下一行文本。long
readLong()
从流中读取8个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为long
返回。short
从流中读取两个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为short
值返回。int
从流中读取一个字节,并(概念上)将其转换为int,使用0xff
进行掩码以去除任何符号扩展位,并将其作为byte
值返回。long
从流中读取4个字节,并(概念上)根据当前字节顺序连接它们,将结果转换为long,使用0xffffffffL
进行掩码以去除任何符号扩展位,并将结果作为无符号long
值返回。int
从流中读取两个字节,并(概念上)根据当前字节顺序连接它们,将结果转换为int
,使用0xffff
进行掩码以去除任何符号扩展位,并将结果作为无符号int
值返回。readUTF()
读取使用modified UTF-8
格式编码的字符串。void
reset()
从标记位置堆栈重置当前流字节和位位置。void
seek
(long pos) 将当前流位置设置为所需位置。void
setBitOffset
(int bitOffset) 将位偏移设置为介于0和7之间的整数。void
setByteOrder
(ByteOrder byteOrder) 为将来从该流读取数据值设置所需的字节顺序。int
skipBytes
(int n) 通过调用seek(getStreamPosition() + n)
来推进当前流位置。long
skipBytes
(long n) 通过调用seek(getStreamPosition() + n)
来推进当前流位置。
-
Field Details
-
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。
-
-
Constructor Details
-
ImageInputStreamImpl
public ImageInputStreamImpl()构造一个ImageInputStreamImpl
。
-
-
Method Details
-
checkClosed
如果流已关闭,则抛出IOException
。子类可以从任何需要流未关闭的方法中调用此方法。- 抛出:
-
IOException
- 如果流已关闭。
-
setByteOrder
从接口复制的描述:ImageInputStream
为将来从该流读取数据值设置所需的字节顺序。例如,如果将字节序列'0x01 0x02 0x03 0x04'作为4字节整数读取,使用网络字节顺序将值为'0x01020304',而在反向字节顺序下值为'0x04030201'。使用枚举类
java.nio.ByteOrder
指定字节顺序。值ByteOrder.BIG_ENDIAN
指定所谓的大端或网络字节顺序,其中高位字节先出现。Motorola和Sparc处理器以此格式存储数据,而Intel处理器以反向ByteOrder.LITTLE_ENDIAN
顺序存储数据。字节顺序不会影响从
readBits
方法返回的结果(或由ImageOutputStream.writeBits
写入的值)。- 指定者:
-
setByteOrder
在接口ImageInputStream
中 - 参数:
-
byteOrder
-ByteOrder.BIG_ENDIAN
或java.nio.ByteOrder.LITTLE_ENDIAN
之一,指示将来读取时使用网络字节顺序还是其反向顺序。 - 参见:
-
getByteOrder
从接口复制的描述:ImageInputStream
返回将从此流中读取数据值的字节顺序,作为java.nio.ByteOrder
枚举的实例。- 指定者:
-
getByteOrder
在接口ImageInputStream
中 - 返回:
-
ByteOrder.BIG_ENDIAN
或ByteOrder.LITTLE_ENDIAN
之一,指示正在使用的字节顺序。 - 参见:
-
read
从流中读取一个字节并将其作为介于0和255之间的int
返回。如果达到EOF,则返回-1
。子类必须为此方法提供实现。子类实现应在退出之前更新流位置。
在读取发生之前,流中的位偏移必须重置为零。
- 指定者:
-
read
在接口ImageInputStream
中 - 返回:
-
流中下一个字节的值,如果达到EOF,则返回
-1
。 - 抛出:
-
IOException
- 如果流已关闭。
-
read
调用read(b, 0, b.length)
的便利方法。在读取发生之前,流中的位偏移将重置为零。
- 指定者:
-
read
在接口ImageInputStream
中 - 参数:
-
b
- 要写入的字节数组。 - 返回:
-
实际读取的字节数,如果达到EOF,则返回
-1
。 - 抛出:
-
NullPointerException
- 如果b
为null
。 -
IOException
- 如果发生I/O错误。
-
read
从流中读取最多len
字节,并将它们存储到从索引off
开始的b
中。如果由于已达到流的末尾而无法读取任何字节,则返回-1
。在读取发生之前,流中的位偏移必须重置为零。
子类必须为此方法提供实现。子类实现应在退出之前更新流位置。
- 指定者:
-
read
在接口ImageInputStream
中 - 参数:
-
b
- 要写入的字节数组。 -
off
- 要写入的b
中的起始位置。 -
len
- 要读取的最大字节数。 - 返回:
-
实际读取的字节数,如果达到EOF,则返回
-1
。 - 抛出:
-
IndexOutOfBoundsException
- 如果off
为负,len
为负,或off + len
大于b.length
。 -
NullPointerException
- 如果b
为null
。 -
IOException
- 如果发生I/O错误。
-
readBytes
从接口复制的描述:ImageInputStream
从流中读取最多len
字节,并修改提供的IIOByteBuffer
以指示可以找到数据的字节数组、偏移量和长度。调用者不应尝试修改IIOByteBuffer
中找到的数据。在读取发生之前,流中的位偏移将重置为零。
- 指定者:
-
readBytes
在接口ImageInputStream
中 - 参数:
-
buf
- 要修改的IIOByteBuffer对象。 -
len
- 要读取的最大字节数。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
readBoolean
从接口复制的描述:ImageInputStream
从流中读取一个字节并返回一个boolean
值,如果不为零则返回true
,如果为零则返回false
。在读取发生之前,流中的位偏移将重置为零。
- 指定者:
-
readBoolean
在接口DataInput
中 - 指定者:
-
readBoolean
在接口ImageInputStream
中 - 返回:
- 流中的布尔值。
- 抛出:
-
EOFException
- 如果达到流的末尾。 -
IOException
- 如果发生I/O错误。
-
readByte
从接口复制的描述:ImageInputStream
从流中读取一个字节并将其作为byte
值返回。介于0x00
和0x7f
之间的字节值表示介于0
和127
之间的整数值。介于0x80
和0xff
之间的值表示从-128
到/1
的负值。在读取发生之前,流中的位偏移将重置为零。
- 指定者:
-
readByte
在接口DataInput
中 - 指定者:
-
readByte
在接口ImageInputStream
中 - 返回:
- 流中的有符号字节值。
- 抛出:
-
EOFException
- 如果达到流的末尾。 -
IOException
- 如果发生I/O错误。
-
readUnsignedByte
从接口复制的描述:ImageInputStream
从流中读取一个字节,并(概念上)将其转换为int,使用0xff
进行掩码以去除任何符号扩展位,并将其作为byte
值返回。因此,介于
0x00
和0x7f
之间的字节值将简单地作为介于0
和127
之间的整数值返回。介于0x80
和0xff
之间的值,通常表示负的byte
值,将映射为介于128
和255
之间的正整数。在读取发生之前,流中的位偏移将重置为零。
- 指定者:
-
readUnsignedByte
在接口DataInput
中 - 指定者:
-
readUnsignedByte
在接口ImageInputStream
中 - 返回值:
- 从流中返回一个无符号字节值。
- 抛出:
-
EOFException
- 如果到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readShort
从接口中复制的描述:ImageInputStream
从流中读取两个字节,根据当前字节顺序(概念上)将它们连接起来,并将结果作为short
值返回。在读取发生之前,流中的位偏移被重置为零。
- 指定者:
-
readShort
在接口DataInput
中 - 指定者:
-
readShort
在接口ImageInputStream
中 - 返回值:
- 从流中返回一个有符号短整型值。
- 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readUnsignedShort
从接口中复制的描述:ImageInputStream
从流中读取两个字节,根据当前字节顺序(概念上)将它们连接起来,将结果转换为一个int
,使用0xffff
进行掩码处理以去除任何符号扩展位,并将结果作为无符号int
值返回。在读取发生之前,流中的位偏移被重置为零。
- 指定者:
-
readUnsignedShort
在接口DataInput
中 - 指定者:
-
readUnsignedShort
在接口ImageInputStream
中 - 返回值:
- 从流中返回一个无符号短整型值,作为一个整型。
- 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readChar
从接口中复制的描述:ImageInputStream
等同于readUnsignedShort
,只是结果使用char
数据类型返回。在读取发生之前,流中的位偏移被重置为零。
- 指定者:
-
readChar
在接口DataInput
中 - 指定者:
-
readChar
在接口ImageInputStream
中 - 返回值:
- 从流中返回一个无符号字符值。
- 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readInt
从接口中复制的描述:ImageInputStream
从流中读取4个字节,根据当前字节顺序(概念上)将它们连接起来,并将结果作为一个int
返回。流中的位偏移被忽略,并被视为零。
- 指定者:
-
readInt
在接口DataInput
中 - 指定者:
-
readInt
在接口ImageInputStream
中 - 返回值:
- 从流中返回一个有符号整型值。
- 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readUnsignedInt
从接口中复制的描述:ImageInputStream
从流中读取4个字节,根据当前字节顺序(概念上)将它们连接起来,将结果转换为一个长整型,使用0xffffffffL
进行掩码处理以去除任何符号扩展位,并将结果作为无符号long
值返回。在读取发生之前,流中的位偏移被重置为零。
- 指定者:
-
readUnsignedInt
在接口ImageInputStream
中 - 返回值:
- 从流中返回一个无符号整型值,作为一个长整型。
- 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readLong
从接口中复制的描述:ImageInputStream
从流中读取8个字节,根据当前字节顺序(概念上)将它们连接起来,并将结果作为一个long
返回。在读取发生之前,流中的位偏移被重置为零。
- 指定者:
-
readLong
在接口DataInput
中 - 指定者:
-
readLong
在接口ImageInputStream
中 - 返回值:
- 从流中返回一个有符号长整型值。
- 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readFloat
从接口中复制的描述:ImageInputStream
从流中读取4个字节,根据当前字节顺序(概念上)将它们连接起来,并将结果作为一个float
返回。在读取发生之前,流中的位偏移被重置为零。
- 指定由:
-
readFloat
在接口DataInput
中 - 指定由:
-
readFloat
在接口ImageInputStream
中 - 返回:
- 流中的一个浮点值。
- 抛出:
-
EOFException
- 如果在读取所有字节之前流到达末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readDouble
从接口复制的描述:ImageInputStream
从流中读取8个字节,并根据当前字节顺序(conceptually)将它们连接起来,将结果作为double
返回。在读取发生之前,流中的位偏移被重置为零。
- 指定由:
-
readDouble
在接口DataInput
中 - 指定由:
-
readDouble
在接口ImageInputStream
中 - 返回:
- 流中的一个双精度值。
- 抛出:
-
EOFException
- 如果在读取所有字节之前流到达末尾。 -
IOException
- 如果发生I/O错误。 - 参见:
-
readLine
从接口复制的描述:ImageInputStream
从输入流中读取下一行文本。它读取连续的字节,将每个字节单独转换为字符,直到遇到行终止符或文件结束;然后将读取的字符作为String
返回。请注意,因为此方法处理字节,所以不支持完整的Unicode字符集的输入。如果在读取任何字节之前遇到文件结束,则返回
null
。否则,读取的每个字节都会通过零扩展转换为char
类型。如果遇到字符'\n'
,则会被丢弃并停止读取。如果遇到字符'\r'
,则会被丢弃,并且如果接下来的字节转换为字符'\n'
,则也会被丢弃;然后停止读取。如果在遇到字符'\n'
和'\r'
之一之前遇到文件结束,则停止读取。一旦停止读取,将返回一个包含按顺序读取且未丢弃的所有字符的String
。请注意,此字符串中的每个字符的值都小于\u0100
,即(char)256
。在读取发生之前,流中的位偏移被重置为零。
- 指定由:
-
readLine
在接口DataInput
中 - 指定由:
-
readLine
在接口ImageInputStream
中 - 返回:
- 包含来自流中的一行文本的字符串。
- 抛出:
-
IOException
- 如果发生I/O错误。
-
readUTF
从接口复制的描述:ImageInputStream
读取使用修改后的UTF-8格式编码的字符串。readUTF
的一般约定是,它读取以修改后的UTF-8格式编码的Unicode字符字符串的表示形式;然后将这些字符作为String
返回。首先,读取两个字节,并使用网络字节顺序(不考虑当前字节顺序设置)构造一个无符号的16位整数,类似于
readUnsignedShort
方法。这个整数值称为UTF长度,并指定要读取的附加字节数。然后通过将它们分组来将这些字节转换为字符。每个组的长度从组的第一个字节的值计算。组的后面的字节(如果有)是下一组的第一个字节。如果组的第一个字节匹配位模式
0xxxxxxx
(其中x
表示"可能是0
或1
"),则该组只包含该字节。该字节被零扩展以形成一个字符。如果组的第一个字节匹配位模式
110xxxxx
,则该组包含该字节a
和第二个字节b
。如果没有字节b
(因为字节a
是要读取的最后一个字节),或者字节b
不匹配位模式10xxxxxx
,则会抛出UTFDataFormatException
。否则,该组将转换为字符:
如果组的第一个字节匹配位模式(char)(((a & 0x1F) << 6) | (b & 0x3F))
1110xxxx
,则该组包含该字节a
和另外两个字节b
和c
。如果没有字节c
(因为字节a
是要读取的最后两个字节之一),或者字节b
或字节c
不匹配位模式10xxxxxx
,则会抛出UTFDataFormatException
。否则,该组将转换为字符:
如果组的第一个字节匹配模式(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
1111xxxx
或模式10xxxxxx
,则会抛出UTFDataFormatException
。如果在整个过程中任何时候遇到文件结束,则会抛出
java.io.EOFException
。在通过此过程将每个组转换为字符后,按照它们对应的组从输入流中读取的顺序,将字符收集起来,形成一个
String
,然后返回。当前的字节顺序设置将被忽略。
在读取发生之前,流中的位偏移被重置为零。
注意:不应在使用标准UTF-8的图像格式的实现中使用此方法,因为此处使用的修改后的UTF-8与标准UTF-8不兼容。
- 指定由:
-
readUTF
在接口DataInput
中 - 指定由:
-
readUTF
在接口ImageInputStream
中 - 返回:
- 从流中读取的一个字符串。
- 抛出:
-
EOFException
- 如果此流在读取所有字节之前到达末尾。 -
UTFDataFormatException
- 如果字节不表示字符串的有效修改后的UTF-8编码。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口复制的描述:ImageInputStream
从流中读取len
个字节,并将它们存储到从索引off
开始的b
中。如果到达流的末尾,将抛出java.io.EOFException
。在读取发生之前,流中的位偏移被重置为零。
- 指定由:
-
readFully
在接口DataInput
中 - 指定由:
-
readFully
在接口ImageInputStream
中 - 参数:
-
b
- 要写入的字节数组。 -
off
- 要写入的b
中的起始位置。 -
len
- 要读取的最大字节数。 - 抛出:
-
EOFException
- 如果在读取所有字节之前流到达末尾。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口复制的描述:ImageInputStream
从流中读取b.length
字节,并将它们存储到从索引0
开始的b
中。如果到达流的末尾,将抛出java.io.EOFException
异常。在读取发生之前,流中的位偏移将被重置为零。
- 指定者:
-
readFully
在接口DataInput
中 - 指定者:
-
readFully
在接口ImageInputStream
中 - 参数:
-
b
- 一个byte
数组。 - 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口中复制的描述:ImageInputStream
从流中根据当前字节顺序读取len
个short(有符号的16位整数),并将它们存储到从索引off
开始的s
中。如果到达流的末尾,将抛出java.io.EOFException
异常。在读取发生之前,流中的位偏移将被重置为零。
- 指定者:
-
readFully
在接口ImageInputStream
中 - 参数:
-
s
- 一个short数组,用于写入。 -
off
- 写入到s
中的起始位置。 -
len
- 要读取的最大short数。 - 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口中复制的描述:ImageInputStream
从流中根据当前字节顺序读取len
个char(无符号的16位整数),并将它们存储到从索引off
开始的c
中。如果到达流的末尾,将抛出java.io.EOFException
异常。在读取发生之前,流中的位偏移将被重置为零。
- 指定者:
-
readFully
在接口ImageInputStream
中 - 参数:
-
c
- 一个char数组,用于写入。 -
off
- 写入到c
中的起始位置。 -
len
- 要读取的最大char数。 - 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口中复制的描述:ImageInputStream
从流中根据当前字节顺序读取len
个int(有符号的32位整数),并将它们存储到从索引off
开始的i
中。如果到达流的末尾,将抛出java.io.EOFException
异常。在读取发生之前,流中的位偏移将被重置为零。
- 指定者:
-
readFully
在接口ImageInputStream
中 - 参数:
-
i
- 一个int数组,用于写入。 -
off
- 写入到i
中的起始位置。 -
len
- 要读取的最大int数。 - 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口中复制的描述:ImageInputStream
从流中根据当前字节顺序读取len
个long(有符号的64位整数),并将它们存储到从索引off
开始的l
中。如果到达流的末尾,将抛出java.io.EOFException
异常。在读取发生之前,流中的位偏移将被重置为零。
- 指定者:
-
readFully
在接口ImageInputStream
中 - 参数:
-
l
- 一个long数组,用于写入。 -
off
- 写入到l
中的起始位置。 -
len
- 要读取的最大long数。 - 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口中复制的描述:ImageInputStream
从流中根据当前字节顺序读取len
个float(32位IEEE单精度浮点数),并将它们存储到从索引off
开始的f
中。如果到达流的末尾,将抛出java.io.EOFException
异常。在读取发生之前,流中的位偏移将被重置为零。
- 指定者:
-
readFully
在接口ImageInputStream
中 - 参数:
-
f
- 一个float数组,用于写入。 -
off
- 写入到f
中的起始位置。 -
len
- 要读取的最大float数。 - 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readFully
从接口中复制的描述:ImageInputStream
从流中根据当前字节顺序读取len
个double(64位IEEE双精度浮点数),并将它们存储到从索引off
开始的d
中。如果到达流的末尾,将抛出java.io.EOFException
异常。在读取发生之前,流中的位偏移将被重置为零。
- 指定者:
-
readFully
在接口ImageInputStream
中 - 参数:
-
d
- 一个double数组,用于写入。 -
off
- 写入到d
中的起始位置。 -
len
- 要读取的最大double数。 - 抛出:
-
EOFException
- 如果在读取所有字节之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
getStreamPosition
从接口中复制的描述:ImageInputStream
返回流的当前字节位置。下一次读取将从此偏移开始。- 指定者:
-
getStreamPosition
在接口ImageInputStream
中 - 返回:
- 包含流位置的long。
- 抛出:
-
IOException
- 如果发生I/O错误。
-
getBitOffset
Description copied from interface:ImageInputStream
返回当前位偏移量,作为一个介于0和7之间的整数。位偏移量通过调用readBits
方法隐式更新。值为0表示正在读取的字节的最高有效位,值为7表示最低有效位。当流首次打开时,位偏移量设置为0,并且通过调用
seek
、skipBytes
或任何read
或readFully
方法时重置为0。- 指定者:
-
getBitOffset
在接口ImageInputStream
中 - 返回:
-
一个包含介于0和7之间的位偏移量的
int
。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
setBitOffset
从接口中复制的描述:ImageInputStream
将位偏移量设置为介于0和7之间的整数。流中的字节偏移量,由getStreamPosition
返回,保持不变。值为0表示正在读取的字节的最高有效位,值为7表示最低有效位。- 指定者:
-
setBitOffset
在接口ImageInputStream
中 - 参数:
-
bitOffset
- 所需的偏移量,作为介于0和7之间的int
。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
readBit
从接口中复制的描述:ImageInputStream
从流中读取一个位,并将其作为一个值为0
或1
的int
返回。位偏移量增加1,并对8取模。- 指定者:
-
readBit
在接口ImageInputStream
中 - 返回:
-
一个包含值为
0
或1
的int
。 - 抛出:
-
EOFException
- 如果在读取所有位之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
readBits
从接口中复制的描述:ImageInputStream
从流中读取一个位串,并将其作为一个long
返回,其中第一个读取的位成为输出的最高有效位。读取从由getStreamPosition
指示的字节开始,在由getBitOffset
给出的位开始。位偏移量增加numBits
,并对8取模。流的字节顺序对此方法没有影响。此方法的返回值构造得好像逐个读取位,并将其移位到返回值的右侧,如下伪代码所示:
注意,因此long accum = 0L; for (int i = 0; i < numBits; i++) { accum <<= 1; // 向左移动一位以腾出空间 accum |= readBit(); }
readBits(32)
的结果可能与readInt()
的结果不相等,如果使用反向网络字节顺序(即,getByteOrder() == false
)。如果在读取所有位之前遇到流的末尾,则会抛出
java.io.EOFException
。- 指定者:
-
readBits
在接口ImageInputStream
中 - 参数:
-
numBits
- 要读取的位数,作为介于0和64之间的int
。 - 返回:
-
位串,作为一个
long
,其中最后读取的位存储在最低有效位中。 - 抛出:
-
EOFException
- 如果在读取所有位之前到达流的末尾。 -
IOException
- 如果发生I/O错误。
-
length
public long length()返回-1L
以指示流的长度未知。子类必须重写此方法以提供实际长度信息。- 指定者:
-
length
在接口ImageInputStream
中 - 返回:
- -1L表示长度未知。
-
skipBytes
通过调用seek(getStreamPosition() + n)
将当前流位置向前移动n
个字节。位偏移量被重置为零。
- 指定者:
-
skipBytes
在接口DataInput
中 - 指定者:
-
skipBytes
在接口ImageInputStream
中 - 参数:
-
n
- 要向前移动的字节数。 - 返回:
-
一个表示跳过的字节数的
int
。 - 抛出:
-
IOException
- 如果在计算起始或结束位置时getStreamPosition
抛出IOException
。
-
skipBytes
通过调用seek(getStreamPosition() + n)
将当前流位置向前移动n
个字节。位偏移量被重置为零。
- 指定者:
-
skipBytes
在接口ImageInputStream
中 - 参数:
-
n
- 要向前移动的字节数。 - 返回:
-
一个表示跳过的字节数的
long
。 - 抛出:
-
IOException
- 如果在计算起始或结束位置时getStreamPosition
抛出IOException
。
-
seek
从接口中复制的描述:ImageInputStream
将当前流位置设置为所需位置。下一次读取将在此位置发生。位偏移量设置为0。如果
pos
小于刷新位置(由getflushedPosition
返回),则将抛出IndexOutOfBoundsException
。可以寻址超出文件末尾;只有在执行读取时才会抛出
java.io.EOFException
。- 指定者:
-
seek
在接口ImageInputStream
中 - 参数:
-
pos
- 包含所需文件指针位置的long
。 - 抛出:
-
IOException
- 如果发生其他I/O错误。
-
mark
public void mark()将当前流位置推送到标记位置堆栈上。- 指定者:
-
mark
在接口ImageInputStream
中
-
reset
从标记位置堆栈中重置当前流字节和位位置。如果先前的标记位置位于流的丢弃部分中,则将抛出
IOException
。- 指定者:
-
reset
在接口ImageInputStream
中 - 抛出:
-
IOException
- 如果发生I/O错误。
-
flushBefore
从接口中复制的描述:ImageInputStream
丢弃指定位置之前的流的初始部分。尝试寻址到已刷新部分内部的偏移量将导致IndexOutOfBoundsException
。调用
flushBefore
可能允许实现此接口的类释放用于存储流数据的资源,如内存或磁盘空间。- 指定者:
-
flushBefore
在接口ImageInputStream
中指定 - 参数:
-
pos
- 包含可以刷新的流前缀长度的long
。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
flush
从接口中复制的描述:ImageInputStream
丢弃当前流位置之前的流初始位置。等效于flushBefore(getStreamPosition())
。- 指定者:
-
flush
在接口ImageInputStream
中指定 - 抛出:
-
IOException
- 如果发生I/O错误。
-
getFlushedPosition
public long getFlushedPosition()从接口中复制的描述:ImageInputStream
返回可以执行寻址的流中最早的位置。返回的值将是传递给flushBefore
的所有值的最大值。- 指定者:
-
getFlushedPosition
在接口ImageInputStream
中指定 - 返回:
-
作为
long
的寻址的最早合法位置。
-
isCached
public boolean isCached()默认实现返回false。子类应该在缓存数据时覆盖此方法。- 指定者:
-
isCached
在接口ImageInputStream
中指定 - 返回:
-
如果这个
ImageInputStream
缓存数据,则返回true
。 - 参见:
-
isCachedMemory
public boolean isCachedMemory()默认实现返回false。子类应该在主内存中缓存数据时覆盖此方法。- 指定者:
-
isCachedMemory
在接口ImageInputStream
中指定 - 返回:
-
如果这个
ImageInputStream
在主内存中缓存数据,则返回true
。 - 参见:
-
isCachedFile
public boolean isCachedFile()默认实现返回false。子类应该在临时文件中缓存数据时覆盖此方法。- 指定者:
-
isCachedFile
在接口ImageInputStream
中指定 - 返回:
-
如果这个
ImageInputStream
在临时文件中缓存数据,则返回true
。 - 参见:
-
close
从接口中复制的描述:ImageInputStream
关闭流。尝试访问已关闭的流可能导致IOException
或不正确的行为。调用此方法可能允许实现此接口的类释放与流相关的资源,如内存、磁盘空间或文件描述符。- 指定者:
-
close
在接口AutoCloseable
中指定 - 指定者:
-
close
在接口Closeable
中指定 - 指定者:
-
close
在接口ImageInputStream
中指定 - 抛出:
-
IOException
- 如果发生I/O错误。
-
finalize
Deprecated, for removal: This API element is subject to removal in a future version.Finalization has been deprecated for removal. SeeObject.finalize()
for background information and details about migration options.在垃圾回收之前完成此对象的处理。将调用close
方法来关闭任何打开的输入源。不应该从应用程序代码中调用此方法。
-