|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.imageio.stream
接口 ImageInputStream
- 所有超级接口:
- DataInput
- 所有已知子接口:
- ImageOutputStream
- 所有已知实现类:
- FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamImpl, ImageOutputStreamImpl, MemoryCacheImageInputStream, MemoryCacheImageOutputStream
-
public interface ImageInputStream
- extends DataInput
供 ImageReader
使用的可查找输入流接口。各种输入源(如 InputStream
、File
以及将来的快速 I/O 源)都可以通过此接口的恰当实现进行“包装”,供 Image I/O API 使用。
- 另请参见:
-
ImageInputStreamImpl
,FileImageInputStream
,FileCacheImageInputStream
,MemoryCacheImageInputStream
方法摘要 | |
---|---|
void |
close() 关闭流。 |
void |
flush() 丢弃当前流位置之前的流初始部分。 |
void |
flushBefore(long pos) 丢弃所指示部分之前的流初始部分。 |
int |
getBitOffset() 以整数的形式返回当前位偏移量,该整数在 0 到 7 之间(包含两者)。 |
ByteOrder |
getByteOrder() 以 java.nio.ByteOrder 枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。 |
long |
getFlushedPosition() 返回流中可以查找到的最早的部分。 |
long |
getStreamPosition() 返回流的当前字节位置。 |
boolean |
isCached() 如果此 ImageInputStream 本身为了允许逆向查找而缓存了数据,则返回 true 。 |
boolean |
isCachedFile() 如果此 ImageInputStream 本身为了允许逆向查找而缓存了数据,并且将其保存在临时文件中,则返回 true 。 |
boolean |
isCachedMemory() 如果此 ImageInputStream 本身为了允许逆向查找而缓存了数据,并且将其保存在主存中,则返回 true 。 |
long |
length() 返回流的总长度,如果已知的话。 |
void |
mark() 标记流中某个位置,供后续调用 reset 返回。 |
int |
read() 从流中读取单个字节,并以整数(0 到 255 之间)形式返回该字节。 |
int |
read(byte[] b) 从流中读取至多 b.length 个字节,并将其存储到 b 中(从索引 0 开始)。 |
int |
read(byte[] b, int off, int len) 从流中读取至多 len 个字节,并将其存储到 b 中(从索引 off 开始)。 |
int |
readBit() 从流中读取单个字节,并以 int (0 或 1 )的形式返回该字节。 |
long |
readBits(int numBits) 从流中读取位串 (bitstring) 并以 long 的形式返回,使第一个读取的位成为输出的最高有效位。 |
boolean |
readBoolean() 从流中读取一个字节,如果其不为零,则返回 boolean 值的 true ;如果为零,则返回 false 。 |
byte |
readByte() 从流中读取一个字节,并以 byte 值的形式返回该字节。 |
void |
readBytes(IIOByteBuffer buf, int len) 从流中读取至多 len 个字节,并修改提供的 IIOByteBuffer 来指示可以用来找到数据的字节数组、偏移量以及长度。 |
char |
readChar() 与 readUnsignedShort 等效,惟一的不同是它的结果使用 char 数据类型。 |
double |
readDouble() 从流中读取 8 个字节,根据当前字节顺序将其连接(概念上),然后以 double 值的形式返回结果。 |
float |
readFloat() 从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),然后以 float 值的形式返回结果。 |
void |
readFully(byte[] b) 从流中读取 b.length 个 byte,并将其存储到 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() 返回在最近一次非匹配地调用 mark 时指向上一个位置(包括位偏移量)的文件指针。 |
void |
seek(long pos) 将当前流位置设置为所需的位置。 |
void |
setBitOffset(int bitOffset) 将位偏移量设置为 0 到 7 之间(包含两者)的整数。 |
void |
setByteOrder(ByteOrder byteOrder) 设置希望以后从此流中读取数据值时使用的字节顺序。 |
int |
skipBytes(int n) 将流位置向前移动给定的字节数。 |
long |
skipBytes(long n) 将流位置向前移动给定的字节数。 |
方法详细信息 |
---|
setByteOrder
void setByteOrder(ByteOrder byteOrder)
-
设置希望以后从此流中读取数据值时使用的字节顺序。例如,如果以 4 字节整数形式读取字节序列 '0x01 0x02 0x03 0x04',则使用网络字节顺序时结果为值 '0x01020304',使用逆向字节顺序时为值 '0x04030201'。
枚举类
java.nio.ByteOrder
用于指定字节顺序。值ByteOrder.BIG_ENDIAN
指定所谓的 big-endian 或网络字节顺序,该顺序中高位字节在前。Motorola 和 Sparc 处理器用此格式存储数据,而 Intel 处理器使用与之相反的ByteOrder.LITTLE_ENDIAN
顺序存储数据。字节顺序对
readBits
方法返回的结果(或ImageOutputStream.writeBits
写入的值)没有任何影响。 -
-
- 参数:
-
byteOrder
-ByteOrder.BIG_ENDIAN
或java.nio.ByteOrder.LITTLE_ENDIAN
,指示以后读取时是使用网络顺序还是使用与之相反的顺序。 - 另请参见:
-
ByteOrder
,getByteOrder()
,readBits(int)
getByteOrder
ByteOrder getByteOrder()
-
以
java.nio.ByteOrder
枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。 -
-
- 返回:
-
ByteOrder.BIG_ENDIAN
或ByteOrder.LITTLE_ENDIAN
,指示要使用的字节顺序。 - 另请参见:
-
ByteOrder
,setByteOrder(java.nio.ByteOrder)
read
int read() throws IOException
-
从流中读取单个字节,并以整数(0 到 255 之间)形式返回该字节。如果到达流末尾,则返回 -1。
在进行读取前,将流中的位偏移量重置为零。
-
-
- 返回:
- 流中的 int 形式的字节值;或者 -1,指示 EOF(文件结束标记)。
- 抛出:
-
IOException
- 如果发生 I/O 错误。
read
int read(byte[] b) throws IOException
-
从流中读取至多
b.length
个字节,并将其存储到b
中(从索引 0 开始)。返回读取的字节数。如果因到达流末尾而无法读取任何字节,则返回 -1。在进行读取前,将流中的位偏移量重置为零。
-
-
- 参数:
-
b
- 用来接收写入的字节数组。 - 返回:
-
实际读取的字节数;或者
-1
,指示 EOF。 - 抛出:
-
NullPointerException
- 如果b
为null
。 -
IOException
- 如果发生 I/O 错误。
read
int read(byte[] b, int off, int len) throws IOException
-
从流中读取至多
len
个字节,并将其存储到b
中(从索引off
开始)。返回读取的字节数。如果因到达流末尾而无法读取任何字节,则返回-1
。在进行读取前,将流中的位偏移量重置为零。
-
-
- 参数:
-
b
- 用来接收写入的字节数组。 -
off
- 向b
进行写入的开始位置。 -
len
- 要读取的最大byte
数。 - 返回:
-
实际读取的字节数;或
-1
,指示 EOF。 - 抛出:
-
NullPointerException
- 如果b
为null
。 -
IndexOutOfBoundsException
- 如果off
为负、len
为负或者off + len
大于b.length
。 -
IOException
- 如果发生 I/O 错误。
readBytes
void readBytes(IIOByteBuffer buf, int len) throws IOException
-
从流中读取至多
len
个字节,并修改提供的IIOByteBuffer
来指示可以用来找到数据的字节数组、偏移量以及长度。调用方不应该试图修改IIOByteBuffer
中的数据。在进行读取前,将流中的位偏移量重置为零。
-
-
- 参数:
-
buf
- 要修改的 IIOByteBuffer 对象。 -
len
- 要读取的最大byte
数。 - 抛出:
-
IndexOutOfBoundsException
- 如果len
为负。 -
NullPointerException
- 如果buf
为null
。 -
IOException
- 如果发生 I/O 错误。
readBoolean
boolean readBoolean() throws IOException
-
从流中读取一个字节,如果其不为零,则返回
boolean
值的true
;如果为零,则返回false
。在进行读取前,将流中的位偏移量重置为零。
-
- 指定者:
-
接口
DataInput
中的readBoolean
-
- 返回:
- 来自流中的 boolean 值。
- 抛出:
-
EOFException
- 如果到达流末尾。 -
IOException
- 如果发生 I/O 错误。