java命名空间javax.imageio.stream接口imageinputstream的类成员方法:
readbits定义及介绍
本文导语:
readbits
long readbits(int numbits)
throws ioexception
从流中读取位串 (bitstring) 并以 long 的形式返回,使第一个读取的位成为输出的最高有效位。在 getstreamposition 指示的字节中从 getbitoffset 给定的位开始读取。位偏移量将增加 ...
readbits
long readbits(int numbits)
throws ioexception
- 从流中读取位串 (bitstring) 并以
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
。
- 参数:
numbits
- 要读取的位数,为 0 到 64 之间(包含两者)的 int
形式。
- 返回:
long
形式的位串,最后读取的位存储在最低有效位中。
- 抛出:
illegalargumentexception
- 如果 numbits
不在 0 和 64 之间(包括两者)。
eofexception
- 如果该流在读取所有位之前到达末尾。
ioexception
- 如果发生 i/o 错误。