- 所有已实现的接口:
-
Closeable,DataInput,AutoCloseable,ImageInputStream
- 直接已知的子类:
-
FileCacheImageInputStream,FileImageInputStream,ImageOutputStreamImpl,MemoryCacheImageInputStream
ImageInputStream接口的抽象类。该类旨在减少子类必须实现的方法数量。
特别是,该类处理大部分或全部的字节顺序解释、缓冲、标记/重置、丢弃、关闭和处理细节。
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected int流中的当前位偏移量。protected ByteOrder流的字节顺序,作为枚举类java.nio.ByteOrder的实例,其中ByteOrder.BIG_ENDIAN表示网络字节顺序,ByteOrder.LITTLE_ENDIAN表示反向顺序。protected long可丢弃数据的位置之前。protected long流中的当前读取位置。 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final void如果流已关闭,则抛出IOException。voidclose()关闭流。protected voidfinalize()已弃用,将来会移除: 该API元素可能在将来的版本中被移除。已弃用终结。voidflush()丢弃当前流位置之前的初始位置。voidflushBefore(long pos) 丢弃指定位置之前的流的初始部分。int返回当前位偏移量,作为介于0和7之间的整数。返回数据值将从该流中读取的字节顺序,作为java.nio.ByteOrder枚举的实例。long返回可以执行寻址的流中最早的位置。long返回流的当前字节位置。booleanisCached()默认实现返回false。boolean默认实现返回false。boolean默认实现返回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字节,并将它们存储到从索引off开始的b中。intreadBit()从流中读取一个位并将其作为值为0或1的int返回。longreadBits(int numBits) 从流中读取一个位串,并将其作为long返回,其中读取的第一个位成为输出的最高有效位。boolean从流中读取一个字节并返回一个boolean值,如果不为零则返回true,如果为零则返回false。bytereadByte()从流中读取一个字节并将其作为byte值返回。voidreadBytes(IIOByteBuffer buf, int len) 从流中读取最多len字节,并修改提供的IIOByteBuffer以指示可以找到数据的字节数组、偏移量和长度。charreadChar()等效于readUnsignedShort,只是使用char数据类型返回结果。double从流中读取8个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为double返回。float从流中读取4个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为float返回。voidreadFully(byte[] b) 从流中读取b.length字节,并将它们存储到从索引0开始的b中。voidreadFully(byte[] b, int off, int len) 从流中读取len字节,并将它们存储到从索引off开始的b中。voidreadFully(char[] c, int off, int len) 根据当前字节顺序从流中读取len个字符(无符号16位整数),并将它们存储到从索引off开始的c中。voidreadFully(double[] d, int off, int len) 根据当前字节顺序从流中读取len个双精度(64位IEEE双精度浮点数),并将它们存储到从索引off开始的d中。voidreadFully(float[] f, int off, int len) 根据当前字节顺序从流中读取len个单精度(32位IEEE单精度浮点数),并将它们存储到从索引off开始的f中。voidreadFully(int[] i, int off, int len) 根据当前字节顺序从流中读取len个有符号32位整数,并将它们存储到从索引off开始的i中。voidreadFully(long[] l, int off, int len) 根据当前字节顺序从流中读取len个有符号64位整数,并将它们存储到从索引off开始的l中。voidreadFully(short[] s, int off, int len) 根据当前字节顺序从流中读取len个有符号16位整数,并将它们存储到从索引off开始的s中。intreadInt()从流中读取4个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为int返回。readLine()从输入流中读取下一行文本。longreadLong()从流中读取8个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为long返回。short从流中读取两个字节,并(概念上)根据当前字节顺序连接它们,并将结果作为short值返回。int从流中读取一个字节,并(概念上)将其转换为int,使用0xff进行掩码以去除任何符号扩展位,并将其作为byte值返回。long从流中读取4个字节,并(概念上)根据当前字节顺序连接它们,将结果转换为long,使用0xffffffffL进行掩码以去除任何符号扩展位,并将结果作为无符号long值返回。int从流中读取两个字节,并(概念上)根据当前字节顺序连接它们,将结果转换为int,使用0xffff进行掩码以去除任何符号扩展位,并将结果作为无符号int值返回。readUTF()读取使用modified UTF-8格式编码的字符串。voidreset()从标记位置堆栈重置当前流字节和位位置。voidseek(long pos) 将当前流位置设置为所需位置。voidsetBitOffset(int bitOffset) 将位偏移设置为介于0和7之间的整数。voidsetByteOrder(ByteOrder byteOrder) 为将来从该流读取数据值设置所需的字节顺序。intskipBytes(int n) 通过调用seek(getStreamPosition() + n)来推进当前流位置。longskipBytes(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方法来关闭任何打开的输入源。不应该从应用程序代码中调用此方法。
-