|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.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()
从流中读取单个字节,并以 int(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()
从流中读取一个字节,如果其不为 0,则返回 boolean 值 true;如果为 0,则返回 false。 |
byte |
readByte()
从流中读取一个字节,并以 byte 值的形式返回该字节。 |
void |
readBytes(IIOByteBuffer buf,
int len)
从流中读取至多 len 个字节,并修改提供的 IIOByteBuffer 以指示可以找到数据的 byte 数组、偏移量和长度。 |
char |
readChar()
与 readUnsignedShort 等效,唯一的不同在于它的结果使用 char 数据类型返回。 |
double |
readDouble()
从流中读取 8 个字节,根据当前字节顺序将其连接(概念上),然后以 double 值的形式返回结果。 |
float |
readFloat()
从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),然后以 float 值的形式返回结果。 |
void |
readFully(byte[] b)
从流中读取 b.length 个字节,并将其存储到 b 中(从索引 0 开始)。 |
void |
readFully(byte[] b,
int off,
int len)
从流中读取 len 个字节,并将其存储到 b 中(从索引 off 开始)。 |
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()
从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),然后以 int 值的形式返回结果。 |
String |
readLine()
从输入流中读取文本的下一行。 |
long |
readLong()
从流中读取 8 个字节,根据当前字节顺序将其连接(概念上),然后以 long 值的形式返回结果。 |
short |
readShort()
从流中读取两个字节,根据当前字节顺序将其连接(概念上),然后以 short 值的形式返回结果。 |
int |
readUnsignedByte()
从流中读取一个字节,将其转换为 int(概念上),使用 0xff 屏蔽以便去掉所有符号扩展位,然后以 byte 值的形式返回。 |
long |
readUnsignedInt()
从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),将得到的值转换为 long,使用 0xffffffffL 屏蔽以便去掉所有符号扩展位,然后以无符号 long 值的形式返回结果。 |
int |
readUnsignedShort()
从流中读取两个字节,根据当前字节顺序将其连接(概念上),将得到的值转换为 int,使用 0xffff 屏蔽以便去掉所有符号扩展位,然后以无符号 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 中的 setByteOrderbyteOrder - ByteOrder.BIG_ENDIAN 或 java.nio.ByteOrder.LITTLE_ENDIAN,指示以后读取时是使用网络顺序还是使用与之相反的顺序。ByteOrder,
ImageInputStream.getByteOrder(),
ImageInputStream.readBits(int)public ByteOrder getByteOrder()
ImageInputStream 复制的描述java.nio.ByteOrder 枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。
ImageInputStream 中的 getByteOrderByteOrder.BIG_ENDIAN 或 ByteOrder.LITTLE_ENDIAN,指示要使用的字节顺序。ByteOrder,
ImageInputStream.setByteOrder(java.nio.ByteOrder)
public abstract int read()
throws IOException
int(0 到 255 之间)形式返回该字节。 如果到达 EOF,则返回 -1。
子类必须提供此方法的实现。子类实现在退出前应该更新流位置。
在发生读取前,流中的位偏移量必须被重置为 0。
ImageInputStream 中的 read-1。
IOException - 如果流已经被关闭。
public int read(byte[] b)
throws IOException
read(b, 0, b.length) 的便捷方法。
在发生读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readb - 用来接收写入的 byte 数组。
-1,指示 EOF。
NullPointerException - 如果 b 为 null。
IOException - 如果发生 I/O 错误。
public abstract int read(byte[] b,
int off,
int len)
throws IOException
len 个字节,并将其存储到 b 中(从 off 索引处开始)。如果由于到达流末尾而没有读取任何字节,则返回 -1。
在发生读取前,流中的位偏移量必须被重置为 0。
子类必须提供此方法的实现。子类实现在退出前应该更新流位置。
ImageInputStream 中的 readb - 用来接收写入的字节数组。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 以指示可以找到数据的 byte 数组、偏移量和长度。调用者不应该试图修改 IIOByteBuffer 中找到的数据。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readBytesbuf - 要修改的 IIOByteBuffer 对象。len - 要读取的最大 byte 数。
IOException - 如果发生 I/O 错误。
public boolean readBoolean()
throws IOException
ImageInputStream 复制的描述boolean 值 true;如果为 0,则返回 false。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readBooleanImageInputStream 中的 readBooleanEOFException - 如果到达流末尾。
IOException - 如果发生 I/O 错误。
public byte readByte()
throws IOException
ImageInputStream 复制的描述byte 值的形式返回该字节。0x00 到 0x7f 之间的字节值表示 0 到 127 之间的整数值。0x80 到 0xff 之间的字节值表示 -128 到 -1 之间的负整数值。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readByteImageInputStream 中的 readByteEOFException - 如果到达流末尾。
IOException - 如果发生 I/O 错误。
public int readUnsignedByte()
throws IOException
ImageInputStream 复制的描述0xff 屏蔽以便去掉所有符号扩展位,然后以 byte 值的形式返回。
于是,0x00 到 0x7f 之间的字节值便作为 0 到 127 之间的整数值返回。0x80 到 0xff 之间的字节值通常表示为负的 byte 值,它们将被映射成 128 到 255 之间的正整数。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readUnsignedByteImageInputStream 中的 readUnsignedByteEOFException - 如果到达流末尾。
IOException - 如果发生 I/O 错误。
public short readShort()
throws IOException
ImageInputStream 复制的描述short 值的形式返回结果。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readShortImageInputStream 中的 readShortEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public int readUnsignedShort()
throws IOException
ImageInputStream 复制的描述int,使用 0xffff 屏蔽以便去掉所有符号扩展位,然后以无符号 int 值的形式返回结果。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readUnsignedShortImageInputStream 中的 readUnsignedShortEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public char readChar()
throws IOException
ImageInputStream 复制的描述readUnsignedShort 等效,唯一的不同在于它的结果使用 char 数据类型返回。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readCharImageInputStream 中的 readCharEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.readUnsignedShort()
public int readInt()
throws IOException
ImageInputStream 复制的描述int 值的形式返回结果。
忽略流中的位偏移量,将其视为 0。
DataInput 中的 readIntImageInputStream 中的 readIntEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public long readUnsignedInt()
throws IOException
ImageInputStream 复制的描述0xffffffffL 屏蔽以便去掉所有符号扩展位,然后以无符号 long 值的形式返回结果。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readUnsignedIntEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public long readLong()
throws IOException
ImageInputStream 复制的描述long 值的形式返回结果。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readLongImageInputStream 中的 readLongEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public float readFloat()
throws IOException
ImageInputStream 复制的描述float 值的形式返回结果。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readFloatImageInputStream 中的 readFloatEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public double readDouble()
throws IOException
ImageInputStream 复制的描述double 值的形式返回结果。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readDoubleImageInputStream 中的 readDoubleEOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。ImageInputStream.getByteOrder()
public String readLine()
throws IOException
ImageInputStream 复制的描述String 形式返回读取的字符。注意,因为此方法处理字符,所以它不支持整个 Unicode 字符集的输入。
如果在一个字节都没有读取的时候就遇到文件结束标记,则返回 null。否则,通过左侧补 0 将读取的每个字节转换成 char 类型的值。如果遇到字符 '\n',则丢弃它并且停止读取。如果遇到字符 '\r',则丢弃它;如果它后面的那个字节转变成字符 '\n',则同样丢弃它,并且停止读取。如果在遇到字符 '\n' 和 '\r' 之一前遇到文件结束标记,则停止读取。一旦已停止读取,则返回一个 String,它按顺序包含所有已读取且未丢弃的字符。注意,此字符串中的每个字符的值都将小于 \u0100(即 (char)256)的值。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readLineImageInputStream 中的 readLineIOException - 如果发生 I/O 错误。
public String readUTF()
throws IOException
ImageInputStream 复制的描述readUTF 的常规协定是:该方法读取使用 UTF-8 修改版格式编码的 Unicode 字符串的表示形式;然后以 String 的形式返回此字符串。
首先,读取两个字节并按 readUnsignedShort 方法的方式使用这两个字节构造一个无符号 16 位整数,使用的是网络字节顺序(无论当前设置的是哪种字节顺序)。该整数值被称为 UTF 长度,它指定要读取的额外字节数。然后成组地将这些字节转换为字符。每组的长度根据该组第一个字节的值计算。紧跟在某个组后面的字节(如果有)是下一组的第一个字节。
如果组的第一个字节与位模式 0xxxxxxx(其中 x 表示“可能为 0 或 1”)匹配,则该组只有这一个字节。该字节被左侧补 0,转换成一个字符。
如果组的第一个字节与位模式 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,然后该字符串将被返回。
忽略当前设置的字节顺序。
在进行读取前,流中的位偏移量被重置为 0。
注:在使用标准 UTF-8 图像格式的实现中不应该使用此方法,因为此处使用的 UTF-8 修改版与标准 UTF-8 不兼容。
DataInput 中的 readUTFImageInputStream 中的 readUTFEOFException - 如果此流在读取所有字节之前到达末尾。
UTFDataFormatException - 如果这些字节不表示一个有效的、UTF-8 修改版编码的字符串。
IOException - 如果发生 I/O 错误。
public void readFully(byte[] b,
int off,
int len)
throws IOException
ImageInputStream 复制的描述len 个字节,并将其存储到 b 中(从索引 off 开始)。如果到达流末尾,则将抛出 EOFException。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readFullyImageInputStream 中的 readFullyb - 用来接收写入的 byte 数组。off - 向 b 进行写入的开始位置。len - 要读取的最大 byte 数。
EOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。
public void readFully(byte[] b)
throws IOException
ImageInputStream 复制的描述b.length 个字节,并将其存储到 b 中(从索引 0 开始)。如果到达流末尾,则将抛出 EOFException。
在进行读取前,流中的位偏移量被重置为 0。
DataInput 中的 readFullyImageInputStream 中的 readFullyb - 一个 byte 数组。
EOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。
public void readFully(short[] s,
int off,
int len)
throws IOException
ImageInputStream 复制的描述len 个 short(有符号 16 位整数),并将其存储到 s 中(从索引 off 开始)。如果到达流末尾,则将抛出 EOFException。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readFullys - 用来接收写入的 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。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readFullyc - 用来接收写入的 char 数组。off - 向 c 进行写入的开始位置。len - 要读取的最大 char 数。
EOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。
public void readFully(int[] i,
int off,
int len)
throws IOException
ImageInputStream 复制的描述len 个 int(有符号 32 位整数),并将其存储到 i 中(从索引 off 开始)。如果到达流末尾,则将抛出 EOFException。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readFullyi - 用来接收写入的 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。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readFullyl - 用来接收写入的 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。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readFullyf - 用来接收写入的 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。
在进行读取前,流中的位偏移量被重置为 0。
ImageInputStream 中的 readFullyd - 用来接收写入的 double 数组。off - 向 d 进行写入的开始位置。len - 要读取的最大 double 数。
EOFException - 如果该流在读取所有字节之前到达末尾。
IOException - 如果发生 I/O 错误。
public long getStreamPosition()
throws IOException
ImageInputStream 复制的描述
ImageInputStream 中的 getStreamPositionIOException - 如果发生 I/O 错误。
public int getBitOffset()
throws IOException
ImageInputStream 复制的描述readBits 方法隐式地更新。值 0 表示所读取字节的最高有效位,值 7 表示所读取字节的最低有效位。
第一次打开流时位偏移量被设置为 0,以后可以通过调用 seek、skipBytes、或者任何 read 或 readFully 方法将其重置为 0。
ImageInputStream 中的 getBitOffsetint,包含 0 到 7 之间(包含两者)的位偏移量。
IOException - 如果发生 I/O 错误。ImageInputStream.setBitOffset(int)
public void setBitOffset(int bitOffset)
throws IOException
ImageInputStream 复制的描述getStreamPosition 返回的位偏移量。值 0 表示所读取字节的最高有效位,值 7 表示所读取字节的最低有效位。
ImageInputStream 中的 setBitOffsetbitOffset - 所需的偏移量,为 0 到 7 之间(包括两者)的 int 的形式。
IOException - 如果发生 I/O 错误。ImageInputStream.getBitOffset()
public int readBit()
throws IOException
ImageInputStream 复制的描述int(0 或 1)的形式返回该字节。位偏移量将加 1,模数将减 8。
ImageInputStream 中的 readBitint,包含 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 中的 readBitsnumBits - 要读取的位数,为 0 到 64 之间(包含两者)的 int 形式。
long 形式的位串,最后读取的位存储在最低有效位中。
EOFException - 如果该流在读取所有位之前到达末尾。
IOException - 如果发生 I/O 错误。public long length()
-1L,指示流的长度未知。子类必须重写此方法来提供实际的长度信息。
ImageInputStream 中的 length
public int skipBytes(int n)
throws IOException
seek(getStreamPosition() + n) 推进当前流位置。
位偏移量被重置为 0。
DataInput 中的 skipBytesImageInputStream 中的 skipBytesn - 要逆向查找的字节数。
int,表示跳过的字节数。
IOException - 如果 getStreamPosition 计算起始或结束位置时抛出 IOException。
public long skipBytes(long n)
throws IOException
seek(getStreamPosition() + n) 推进当前流位置。
位偏移量被重置为 0。
ImageInputStream 中的 skipBytesn - 要逆向查找的字节数。
long,表示跳过的字节数。
IOException - 如果 getStreamPosition 计算起始或结束位置时抛出 IOException。
public void seek(long pos)
throws IOException
ImageInputStream 复制的描述 如果 pos 小于刷新位置(由 getflushedPosition 返回),那么将抛出 IndexOutOfBoundsException。
查找文件结束标记的后面是合法的,只有在该处执行读取时才抛出 EOFException。
ImageInputStream 中的 seekpos - 一个 long,它包含所需的文件指针位置。
IOException - 如果发生任何 I/O 错误。public void mark()
ImageInputStream 中的 mark
public void reset()
throws IOException
如果以前的标记位置位于流的丢弃部分,则抛出 IOException。
ImageInputStream 中的 resetIOException - 如果发生 I/O 错误。
public void flushBefore(long pos)
throws IOException
ImageInputStream 复制的描述IndexOutOfBoundsException。
调用 flushBefore 可允许实现此接口的类释放存储流中的数据所使用的资源,如内存和磁盘空间。
ImageInputStream 中的 flushBeforepos - 一个 long,它包含要刷新的流前缀的长度。
IOException - 如果发生 I/O 错误。
public void flush()
throws IOException
ImageInputStream 复制的描述flushBefore(getStreamPosition())。
ImageInputStream 中的 flushIOException - 如果发生 I/O 错误。public long getFlushedPosition()
ImageInputStream 复制的描述flushBefore 上一次调用的值中的最大值。
ImageInputStream 中的 getFlushedPositionlong 形式)。public boolean isCached()
ImageInputStream 中的 isCachedImageInputStream 缓存数据,则返回 true。ImageInputStream.isCachedMemory(),
ImageInputStream.isCachedFile()public boolean isCachedMemory()
ImageInputStream 中的 isCachedMemoryImageInputStream 在主存中缓存数据,则返回 true。ImageInputStream.isCached(),
ImageInputStream.isCachedFile()public boolean isCachedFile()
ImageInputStream 中的 isCachedFileImageInputStream 在临时文件中缓存数据,则返回 true。ImageInputStream.isCached(),
ImageInputStream.isCachedMemory()
public void close()
throws IOException
ImageInputStream 复制的描述IOException 或错误行为。调用此方法可允许实现此接口的类释放与流关联的资源,如内存、磁盘空间或文件描述符。
ImageInputStream 中的 closeIOException - 如果发生 I/O 错误。
protected void finalize()
throws Throwable
close 方法来关闭所有开启的输入源。不应该从应用程序代码调用此方法。
Object 中的 finalizeThrowable - 如果在超类终止过程中发生错误。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。