|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.imageio.stream.ImageInputStreamImpl
public abstract class ImageInputStreamImpl
实现 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 。 |
void |
close()
关闭流。 |
protected void |
finalize()
在垃圾回收前结束此对象。 |
void |
flush()
丢弃当前流位置之前的流初始部分。 |
void |
flushBefore(long pos)
丢弃所指示部分之前的流初始部分。 |
int |
getBitOffset()
以整数的形式返回当前位偏移量,该整数在 0 到 7 之间(包含两者)。 |
ByteOrder |
getByteOrder()
以 java.nio.ByteOrder 枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。 |
long |
getFlushedPosition()
返回流中可以查找到的最早的部分。 |
long |
getStreamPosition()
返回流的当前字节位置。 |
boolean |
isCached()
默认实现返回 false。 |
boolean |
isCachedFile()
默认实现返回 false。 |
boolean |
isCachedMemory()
默认实现返回 false。 |
long |
length()
返回 -1L ,指示流的长度未知。 |
void |
mark()
将当前流位置推进到标记位置的堆栈上。 |
abstract int |
read()
从流中读取单个字节,并以整数(0 到 255 之间)形式返回该字节。 |
int |
read(byte[] b)
调用 read(b, 0, b.length) 的便捷方法。 |
abstract int |
read(byte[] b,
int off,
int len)
从流中读取至多 len 个字节,并将其存储到 b 中(从 off 索引处开始)。 |
int |
readBit()
从流中读取单个字节,并以 int (0 或 1 )的形式返回该字节。 |
long |
readBits(int numBits)
从流中读取位串 (bitstring) 并以 long 的形式返回,使第一个读取的位成为输出的最高有效位。 |
boolean |
readBoolean()
读取一个输入字节,如果该字节不是零,则返回 true ,如果是零,则返回 false 。 |
byte |
readByte()
读取并返回一个输入字节。 |
void |
readBytes(IIOByteBuffer buf,
int len)
从流中读取至多 len 个字节,并修改提供的 IIOByteBuffer 来指示可以用来找到数据的字节数组、偏移量以及长度。 |
char |
readChar()
读取一个输入的 char 并返回该 char 值。 |
double |
readDouble()
读取八个输入字节并返回一个 double 值。 |
float |
readFloat()
读取四个输入字节并返回一个 float 值。 |
void |
readFully(byte[] b)
从输入流中读取一些字节,并将它们存储到缓冲区数组 b 中。 |
void |
readFully(byte[] b,
int off,
int len)
从输入流中读取 len 个字节。 |
void |
readFully(char[] c,
int off,
int len)
根据当前字节顺序从流中读取 len 个 char(无符号 16 位整数),并将其存储到 c 中(从索引 off 开始)。 |
void |
readFully(double[] d,
int off,
int len)
根据当前字节顺序从流中读取 len 个 double(64 位 IEEE 双精度浮点值),并将其存储到 d 中(从索引 off 开始)。 |
void |
readFully(float[] f,
int off,
int len)
根据当前字节顺序从流中读取 len 个 float(32 位 IEEE 单精度浮点值),并将其存储到 f 中(从索引 off 开始)。 |
void |
readFully(int[] i,
int off,
int len)
根据当前字节顺序从流中读取 len 个 int(有符号 32 位整数),并将其存储到 i 中(从索引 off 开始)。 |
void |
readFully(long[] l,
int off,
int len)
根据当前字节顺序从流中读取 len 个 long(有符号 64 位整数),并将其存储到 l 中(从索引 off 开始)。 |
void |
readFully(short[] s,
int off,
int len)
根据当前字节顺序从流中读取 len 个 short(有符号 16 位整数),并将其存储到 s 中(从索引 off 开始)。 |
int |
readInt()
读取四个输入字节并返回一个 int 值。 |
String |
readLine()
从输入流中读取下一文本行。 |
long |
readLong()
读取八个输入字节并返回一个 long 值。 |
short |
readShort()
读取两个输入字节并返回一个 short 值。 |
int |
readUnsignedByte()
读取一个输入字节,将它左侧补零 (zero-extend) 转变为 int 类型,并返回结果,所以结果的范围是 0 到 255 。 |
long |
readUnsignedInt()
从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),将得到的值转换为 long,使用 0xffffffffL 屏蔽以便去掉所有符号扩展位,然后以无符号 long 值的形式返回结果。 |
int |
readUnsignedShort()
读取两个输入字节,并返回 0 到 65535 范围内的一个 int 值。 |
String |
readUTF()
读入一个已使用 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) 推进当前流位置。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected ByteOrder byteOrder
java.nio.ByteOrder
的实例,其中 ByteOrder.BIG_ENDIAN
指示网络字节顺序,ByteOrder.LITTLE_ENDIAN
指示反向顺序。默认情况下,该值为 ByteOrder.BIG_ENDIAN
。
protected long streamPos
protected int bitOffset
protected long flushedPos
flushedPos
将总是 >= 0。
构造方法详细信息 |
---|
public ImageInputStreamImpl()
ImageInputStreamImpl
。
方法详细信息 |
---|
protected final void checkClosed() throws IOException
IOException
。子类可以从其任何要求不关闭流的方法中调用此方法。
IOException
- 如果已关闭流。public void setByteOrder(ByteOrder byteOrder)
ImageInputStream
复制的描述 枚举类 java.nio.ByteOrder
用于指定字节顺序。值 ByteOrder.BIG_ENDIAN
指定所谓的 big-endian 或网络字节顺序,该顺序中高位字节在前。Motorola 和 Sparc 处理器用此格式存储数据,而 Intel 处理器使用与之相反的 ByteOrder.LITTLE_ENDIAN
顺序存储数据。
字节顺序对 readBits
方法返回的结果(或 ImageOutputStream.writeBits
写入的值)没有任何影响。
ImageInputStream
中的 setByteOrder
byteOrder
- ByteOrder.BIG_ENDIAN
或 java.nio.ByteOrder.LITTLE_ENDIAN
,指示以后读取时是使用网络顺序还是使用与之相反的顺序。ByteOrder
,
ImageInputStream.getByteOrder()
,
ImageInputStream.readBits(int)
public ByteOrder getByteOrder()
ImageInputStream
复制的描述java.nio.ByteOrder
枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。
ImageInputStream
中的 getByteOrder
ByteOrder.BIG_ENDIAN
或 ByteOrder.LITTLE_ENDIAN
,指示要使用的字节顺序。ByteOrder
,
ImageInputStream.setByteOrder(java.nio.ByteOrder)
public abstract int read() throws IOException
ImageInputStream
复制的描述在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 read
IOException
- 如果发生 I/O 错误。public int read(byte[] b) throws IOException
read(b, 0, b.length)
的便捷方法。
在发生读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 read
b
- 用来接收写入的字节数组。
-1
,指示 EOF。
NullPointerException
- 如果 b
为 null
。
IOException
- 如果发生 I/O 错误。public abstract int read(byte[] b, int off, int len) throws IOException
len
个字节,并将其存储到 b
中(从 off
索引处开始)。如果由于到达流末尾而没有读取任何字节,则返回 -1
。
在发生读取前,必须将流中的位偏移量重置为零。
子类必须提供此方法的实现。子类实现在退出前应该更新流位置。
ImageInputStream
中的 read
b
- 用来接收写入的字节数组。off
- b
中要写入的起始位置。len
- 要读取的最大字节数。
-1
,指示 EOF。
IndexOutOfBoundsException
- 如果 off
为负、len
为负或者 off + len
大于 b.length
。
NullPointerException
- 如果 b
为 null
。
IOException
- 如果发生 I/O 错误。public void readBytes(IIOByteBuffer buf, int len) throws IOException
ImageInputStream
复制的描述len
个字节,并修改提供的 IIOByteBuffer
来指示可以用来找到数据的字节数组、偏移量以及长度。调用方不应该试图修改 IIOByteBuffer
中的数据。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readBytes
buf
- 要修改的 IIOByteBuffer 对象。len
- 要读取的最大 byte
数。
IOException
- 如果发生 I/O 错误。public boolean readBoolean() throws IOException
DataInput
复制的描述true
,如果是零,则返回 false
。此方法适用于读取用接口 DataOutput
的 writeBoolean
方法写入的字节。
DataInput
中的 readBoolean
ImageInputStream
中的 readBoolean
boolean
值。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public byte readByte() throws IOException
DataInput
复制的描述-128
到 127
(包含)范围内的一个有符号值。此方法适用于读取用接口 DataOutput
的 writeByte
方法写入的字节。
DataInput
中的 readByte
ImageInputStream
中的 readByte
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public int readUnsignedByte() throws IOException
DataInput
复制的描述int
类型,并返回结果,所以结果的范围是 0
到 255
。如果接口 DataOutput
的 writeByte
方法的参数是 0
到 255
之间的值,则此方法适用于读取用 writeByte
写入的字节。
DataInput
中的 readUnsignedByte
ImageInputStream
中的 readUnsignedByte
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public short readShort() throws IOException
DataInput
复制的描述short
值。设 a
为第一个读取字节,b
为第二个读取字节。返回的值是:
(short)((a << 8) | (b & 0xff))
此方法适用于读取用接口 DataOutput
的 writeShort
方法写入的字节。
DataInput
中的 readShort
ImageInputStream
中的 readShort
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public int readUnsignedShort() throws IOException
DataInput
复制的描述0
到 65535
范围内的一个 int
值。设 a
为第一个读取字节,b
为第二个读取字节。返回的值是:
(((a & 0xff) << 8) | (b & 0xff))
如果接口 DataOutput
的 writeShort
方法的参数是 0
到 65535
范围内的值,则此方法适用于读取用 writeShort
写入的字节。
DataInput
中的 readUnsignedShort
ImageInputStream
中的 readUnsignedShort
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public char readChar() throws IOException
DataInput
复制的描述char
并返回该 char
值。Unicode char
由两个字节组成。设 a
为第一个读取字节,b
为第二个读取字节。返回的值是:
(char)((a << 8) | (b & 0xff))
此方法适用于读取用接口 DataOutput
的 writeChar
方法写入的字节。
DataInput
中的 readChar
ImageInputStream
中的 readChar
char
值。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.readUnsignedShort()
public int readInt() throws IOException
DataInput
复制的描述int
值。设 a
为第一个读取字节,b
为第二个读取字节,c
为第三个读取字节,d
为第四个读取字节。返回的值是:
(((a & 0xff) << 24) | ((b & 0xff) << 16) |
((c & 0xff) << 8) | (d & 0xff))
此方法适用于读取用接口 DataOutput
的 writeInt
方法写入的字节。
DataInput
中的 readInt
ImageInputStream
中的 readInt
int
值。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public long readUnsignedInt() throws IOException
ImageInputStream
复制的描述0xffffffffL
屏蔽以便去掉所有符号扩展位,然后以无符号 long
值的形式返回结果。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readUnsignedInt
EOFException
- 如果该流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public long readLong() throws IOException
DataInput
复制的描述long
值。设 a
为第一个读取字节,b
为第二个读取字节,c
为第三个读取字节,d
为第四个读取字节,e
为五个读取字节,f
为第六个读取字节,g
为第七个读取字节,h
为第八个读取字节。返回的值是:
(((long)(a & 0xff) << 56) |
((long)(b & 0xff) << 48) |
((long)(c & 0xff) << 40) |
((long)(d & 0xff) << 32) |
((long)(e & 0xff) << 24) |
((long)(f & 0xff) << 16) |
((long)(g & 0xff) << 8) |
((long)(h & 0xff)))
此方法适用于读取用接口 DataOutput
的 writeLong
方法写入的字节。
DataInput
中的 readLong
ImageInputStream
中的 readLong
long
值。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public float readFloat() throws IOException
DataInput
复制的描述float
值。实现这一点的方法是:先使用与 readInt
方法完全相同的方式构造一个 int
值,然后使用与 Float.intBitsToFloat
方法完全相同的方式将此 int
值转换成一个 float
值。此方法适用于读取用接口 DataOutput
的 writeFloat
方法写入的字节。
DataInput
中的 readFloat
ImageInputStream
中的 readFloat
float
值。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public double readDouble() throws IOException
DataInput
复制的描述double
值。实现这一点的方法是:先使用与 readlong
方法完全相同的方式构造一个 long
值,然后使用与 Double.longBitsToDouble
方法完全相同的方式将此 long
值转换成一个 double
值。此方法适用于读取用接口 DataOutput
的 writeDouble
方法写入的字节。
DataInput
中的 readDouble
ImageInputStream
中的 readDouble
double
值。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public String readLine() throws IOException
DataInput
复制的描述String
形式返回读取的字符。注意,因为此方法处理字符,所以它不支持整个 Unicode 字符集的输入。
如果在一个字节都没有读取的时候就遇到文件末尾,则返回 null
。否则,通过左侧补零将读取的每个字节转换成 char
类型的值。如果遇到字符 '\n'
,则丢弃它并且停止读取。如果遇到字符 '\r'
则丢弃它,如果后续字节转变成字符 '\n'
,则同样丢弃,并且停止读取。如果在遇到字符 '\n'
和 '\r'
之一前遇到文件末尾,则停止读取。一旦已停止读取,则返回一个 String
,它按顺序包含所有已读取且未丢弃的字符。注意,此字符串中的每个字符的值都将小于 \u0100
(即 (char)256
)的值。
DataInput
中的 readLine
ImageInputStream
中的 readLine
null
。
IOException
- 如果发生 I/O 错误。public String readUTF() throws IOException
DataInput
复制的描述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
。
如果在执行整个过程中的任意时间遇到文件末尾,则抛出 EOFException
。
在通过此过程将每个组转换成字符后,按照从输入流中读取相应组的顺序,将这些字符收集在一起,形成一个 String
,然后该字符串将被返回。
可以使用 DataOutput
接口的 writeUTF
方法写入适合此方法读取的数据。
DataInput
中的 readUTF
ImageInputStream
中的 readUTF
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。
UTFDataFormatException
- 如果这些字节不表示一个有效的、UTF-8 修改版编码的字符串。public void readFully(byte[] b, int off, int len) throws IOException
DataInput
复制的描述len
个字节。
在出现以下条件之一以前,此方法将阻塞:
len
个字节是可用的,在这种情况下,正常返回。
EOFException
。
IOException
,而不是 EOFException
。
如果 b
为 null
,则抛出 NullPointerException
。如果 off
为负,或 len
为负,抑或 off+len
大于数组 b
的长度,则抛出 IndexOutOfBoundsException
。如果 len
为零,则不读取字节。否则,将读取的第一个字节存储到元素 b[off]
中,下一个字节存储到 b[off+1]
中,依此类推。读取的字节数至多等于 b[0]
。
DataInput
中的 readFully
ImageInputStream
中的 readFully
b
- 存储读取数据的缓冲区。off
- 指定数据中的偏移量的 int。len
- 指定读取的字节数的 int。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public void readFully(byte[] b) throws IOException
DataInput
复制的描述b
中。读取的字节数等于 b
的长度。
在出现以下条件之一前,此方法将阻塞:
b.length
个字节是可用的,在这种情况下,正常返回。
EOFException
。
IOException
,而不是 EOFException
。
如果 b
为 null
,则抛出 NullPointerException
。如果 b.length
为零,则不读取字节。否则,将读取的第一个字节存储到元素 b[0]
中,下一个字节存储到 b[1]
中,依此类推。如果此方法抛出异常,则可能是因为已经用输入流中的数据更新了 b
的某些(但非全部)字节。
DataInput
中的 readFully
ImageInputStream
中的 readFully
b
- 存储读取数据的缓冲区。
EOFException
- 如果此流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public void readFully(short[] s, int off, int len) throws IOException
ImageInputStream
复制的描述len
个 short(有符号 16 位整数),并将其存储到 s
中(从索引 off
开始)。如果到达流末尾,则将抛出 EOFException
。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readFully
s
- 用来接收写入的 short 数组。off
- 向 s 进行写入的开始位置。len
- 要读取的最大 short
数。
EOFException
- 如果该流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public void readFully(char[] c, int off, int len) throws IOException
ImageInputStream
复制的描述len
个 char(无符号 16 位整数),并将其存储到 c
中(从索引 off
开始)。如果到达流末尾,则将抛出 EOFException
。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readFully
c
- 用来接收写入的 char 数组。off
- 向 s 进行写入的开始位置。len
- 要读取的最大 char
数。
EOFException
- 如果该流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public void readFully(int[] i, int off, int len) throws IOException
ImageInputStream
复制的描述len
个 int(有符号 32 位整数),并将其存储到 i
中(从索引 off
开始)。如果到达流末尾,则将抛出 EOFException
。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readFully
i
- 用来接收写入的 int 数组。off
- 向 i 进行写入的开始位置。len
- 要读取的最大 int
数。
EOFException
- 如果该流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public void readFully(long[] l, int off, int len) throws IOException
ImageInputStream
复制的描述len
个 long(有符号 64 位整数),并将其存储到 l
中(从索引 off
开始)。如果到达流末尾,则将抛出 EOFException
。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readFully
l
- 用来接收写入的 long 数组。off
- 向 l 进行写入的开始位置。len
- 要读取的最大 long
数。
EOFException
- 如果该流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public void readFully(float[] f, int off, int len) throws IOException
ImageInputStream
复制的描述len
个 float(32 位 IEEE 单精度浮点值),并将其存储到 f
中(从索引 off
开始)。如果到达流末尾,则将抛出 EOFException
。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readFully
f
- 用来接收写入的 float 数组。off
- 向 f 进行写入的开始位置。len
- 要读取的最大 float
数。
EOFException
- 如果该流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public void readFully(double[] d, int off, int len) throws IOException
ImageInputStream
复制的描述len
个 double(64 位 IEEE 双精度浮点值),并将其存储到 d
中(从索引 off
开始)。如果到达流末尾,则将抛出 EOFException
。
在进行读取前,将流中的位偏移量重置为零。
ImageInputStream
中的 readFully
d
- 用来接收写入的 double 数组。off
- 向 d 进行写入的开始位置。len
- 要读取的最大 double
数。
EOFException
- 如果该流在读取所有字节之前到达末尾。
IOException
- 如果发生 I/O 错误。public long getStreamPosition() throws IOException
ImageInputStream
复制的描述
ImageInputStream
中的 getStreamPosition
IOException
- 如果发生 I/O 错误。public int getBitOffset() throws IOException
ImageInputStream
复制的描述readBits
方法隐式地更新。值 0 指示所读取字节的最高有效位,值 7 指示所读取字节的最低有效位。
第一次打开流时位偏移量被设置为 0,以后可以通过调用 seek
、skipBytes
、或者任何 read
或 readFully
方法将其重置为 0。
ImageInputStream
中的 getBitOffset
int
,包含 0 到 7 之间(包含两者)的位偏移量。
IOException
- 如果发生 I/O 错误。ImageInputStream.setBitOffset(int)
public void setBitOffset(int bitOffset) throws IOException
ImageInputStream
复制的描述getStreamPosition
返回的位偏移量。值 0 指示所读取字节的最高有效位,值 7 指示所读取字节的最低有效位。
ImageInputStream
中的 setBitOffset
bitOffset
- 所需的偏移量,为 0 到 7 之间(包括两者)的int
的形式。
IOException
- 如果发生 I/O 错误。ImageInputStream.getBitOffset()
public int readBit() throws IOException
ImageInputStream
复制的描述int
(0
或 1
)的形式返回该字节。将位偏移量加 1 并将其模数减 8。
ImageInputStream
中的 readBit
int
,包含值 0
或 1
。
EOFException
- 如果该流在读取所有位之前到达末尾。
IOException
- 如果发生 I/O 错误。public long readBits(int numBits) throws IOException
ImageInputStream
复制的描述long
的形式返回,使第一个读取的位成为输出的最高有效位。在 getStreamPosition
指示的字节中从 getBitOffset
给定的位开始读取。将位偏移量加 numBits
并将其模数减 8。
流的字节顺序对此方法没有任何影响。构造此方法的返回值就好像每次读取一个位,然后将其移到返回值右边一样。如以下伪代码所示:
long accum = 0L; for (int i = 0; i < numBits; i++) { accum <<= 1; // Shift left one bit to make room accum |= readBit(); }注意,如果使用了与网络字节顺序相反的顺序(即,
getByteOrder() == false
),那么 readBits(32)
的结果可能因此而不等于 readInt()
的结果。
如果在读取了所有位前遇到流末尾,则抛出 EOFException
。
ImageInputStream
中的 readBits
numBits
- 要读取的位数,为 0 到 64 之间(包含两者)的 int
形式。
long
形式的位串,最后读取的位存储在最低有效位中。
EOFException
- 如果该流在读取所有位之前到达末尾。
IOException
- 如果发生 I/O 错误。public long length()
-1L
,指示流的长度未知。子类必须重写此方法来提供实际的长度信息。
ImageInputStream
中的 length
public int skipBytes(int n) throws IOException
seek(getStreamPosition() + n)
推进当前流位置。
将位偏移量重置为零。
DataInput
中的 skipBytes
ImageInputStream
中的 skipBytes
n
- 要逆向查找的字节数。
int
,表示跳过的字节数。
IOException
- 如果 getStreamPosition
计算起始或结束位置时抛出 IOException
。public long skipBytes(long n) throws IOException
seek(getStreamPosition() + n)
推进当前流位置。
将位偏移量重置为零。
ImageInputStream
中的 skipBytes
n
- 要逆向查找的字节数。
long
,表示跳过的字节数。
IOException
- 如果 getStreamPosition
计算起始或结束位置时抛出 IOException
。public void seek(long pos) throws IOException
ImageInputStream
复制的描述 如果 pos
小于刷新缓冲的位置(由 getflushedPosition
返回),将抛出 IndexOutOfBoundsException
。
查找文件末尾之后是合法的,只有在该处执行读取时才抛出 EOFException
。
ImageInputStream
中的 seek
pos
- 一个 long
,它包含所需文件的指针位置。
IOException
- 如果发生任何 I/O 错误。public void mark()
ImageInputStream
中的 mark
public void reset() throws IOException
如果以前的标记位置位于流的丢弃部分,则抛出 IOException
。
ImageInputStream
中的 reset
IOException
- 如果发生 I/O 错误。public void flushBefore(long pos) throws IOException
ImageInputStream
复制的描述IndexOutOfBoundsException
。
调用 flushBefore
可允许实现此接口的类释放用于存储流中的数据的资源(如内存和磁盘空间)。
ImageInputStream
中的 flushBefore
pos
- 一个 long
,它包含要刷新的文件前缀的长度。
IOException
- 如果发生 I/O 错误。public void flush() throws IOException
ImageInputStream
复制的描述flushBefore(getStreamPosition())
。
ImageInputStream
中的 flush
IOException
- 如果发生 I/O 错误。public long getFlushedPosition()
ImageInputStream
复制的描述flushBefore
的以前调用的所有值中的最大值。
ImageInputStream
中的 getFlushedPosition
long
的形式的最早合法位置。public boolean isCached()
ImageInputStream
中的 isCached
ImageInputStream
缓存数据,则返回 true
。ImageInputStream.isCachedMemory()
,
ImageInputStream.isCachedFile()
public boolean isCachedMemory()
ImageInputStream
中的 isCachedMemory
ImageInputStream
在主存中缓存数据,则返回 true
。ImageInputStream.isCached()
,
ImageInputStream.isCachedFile()
public boolean isCachedFile()
ImageInputStream
中的 isCachedFile
ImageInputStream
在临时文件中缓存数据,则返回 true
。ImageInputStream.isCached()
,
ImageInputStream.isCachedMemory()
public void close() throws IOException
ImageInputStream
复制的描述IOException
或错误行为。调用此方法可允许实现此接口的类释放与流关联的资源(如内存、磁盘空间或文件描述符)。
ImageInputStream
中的 close
IOException
- 如果发生 I/O 错误。protected void finalize() throws Throwable
close
方法来关闭所有开启的输入源。不应该从应用程序代码调用此方法。
Throwable
- 如果在超类终止过程中发生错误。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。