所有类


javax.imageio.stream
接口 ImageInputStream

所有超级接口:
DataInput
所有已知子接口:
ImageOutputStream
所有已知实现类:
FileCacheImageInputStream, FileCacheImageOutputStream, FileImageInputStream, FileImageOutputStream, ImageInputStreamImpl, ImageOutputStreamImpl, MemoryCacheImageInputStream, MemoryCacheImageOutputStream

public interface ImageInputStream
   
   
   
   
   
extends DataInput

ImageReader 使用的可查找输入流接口。各种输入源(如 InputStreamFile 以及将来的快速 I/O 源)都可以通过此接口的恰当实现进行“包装”,供 Image I/O API 使用。

另请参见:
ImageInputStreamImpl, FileImageInputStream, FileCacheImageInputStream, MemoryCacheImageInputStream

方法摘要
 voidclose()
          关闭流。
 voidflush()
          丢弃当前流位置之前的流初始部分。
 voidflushBefore(long pos)
          丢弃所指示部分之前的流初始部分。
 intgetBitOffset()
          以整数的形式返回当前位偏移量,该整数在 0 到 7 之间(包含两者)。
 ByteOrdergetByteOrder()
          以 java.nio.ByteOrder 枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。
 longgetFlushedPosition()
          返回流中可以查找到的最早的部分。
 longgetStreamPosition()
          返回流的当前字节位置。
 booleanisCached()
          如果此 ImageInputStream 本身为了允许逆向查找而缓存了数据,则返回 true
 booleanisCachedFile()
          如果此 ImageInputStream 本身为了允许逆向查找而缓存了数据,并且将其保存在临时文件中,则返回 true
 booleanisCachedMemory()
          如果此 ImageInputStream 本身为了允许逆向查找而缓存了数据,并且将其保存在主存中,则返回 true
 longlength()
          返回流的总长度,如果已知的话。
 voidmark()
          标记流中某个位置,供后续调用 reset 返回。
 intread()
          从流中读取单个字节,并以整数(0 到 255 之间)形式返回该字节。
 intread(byte[] b)
          从流中读取至多 b.length 个字节,并将其存储到 b 中(从索引 0 开始)。
 intread(byte[] b, int off, int len)
          从流中读取至多 len 个字节,并将其存储到 b 中(从索引 off 开始)。
 intreadBit()
          从流中读取单个字节,并以 int01)的形式返回该字节。
 longreadBits(int numBits)
          从流中读取位串 (bitstring) 并以 long 的形式返回,使第一个读取的位成为输出的最高有效位。
 booleanreadBoolean()
          从流中读取一个字节,如果其不为零,则返回 boolean 值的 true;如果为零,则返回 false
 bytereadByte()
          从流中读取一个字节,并以 byte 值的形式返回该字节。
 voidreadBytes(IIOByteBuffer buf, int len)
          从流中读取至多 len 个字节,并修改提供的 IIOByteBuffer 来指示可以用来找到数据的字节数组、偏移量以及长度。
 charreadChar()
          与 readUnsignedShort 等效,惟一的不同是它的结果使用 char 数据类型。
 doublereadDouble()
          从流中读取 8 个字节,根据当前字节顺序将其连接(概念上),然后以 double 值的形式返回结果。
 floatreadFloat()
          从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),然后以 float 值的形式返回结果。
 voidreadFully(byte[] b)
          从流中读取 b.length 个 byte,并将其存储到 b 中(从索引 0 开始)。
 voidreadFully(byte[] b, int off, int len)
          从流中读取 len 个字节,并将其存储到 b 中(从索引 off 开始)。
 voidreadFully(char[] c, int off, int len)
          根据当前字节顺序从流中读取 len 个 char(无符号 16 位整数),并将其存储到 c 中(从索引 off 开始)。
 voidreadFully(double[] d, int off, int len)
          根据当前字节顺序从流中读取 len 个 double(64 位 IEEE 双精度浮点值),并将其存储到 d 中(从索引 off 开始)。
 voidreadFully(float[] f, int off, int len)
          根据当前字节顺序从流中读取 len 个 float(32 位 IEEE 单精度浮点值),并将其存储到 f 中(从索引 off 开始)。
 voidreadFully(int[] i, int off, int len)
          根据当前字节顺序从流中读取 len 个 int(有符号 32 位整数),并将其存储到 i 中(从索引 off 开始)。
 voidreadFully(long[] l, int off, int len)
          根据当前字节顺序从流中读取 len 个 long(有符号 64 位整数),并将其存储到 l 中(从索引 off 开始)。
 voidreadFully(short[] s, int off, int len)
          根据当前字节顺序从流中读取 len 个 short(有符号 16 位整数),并将其存储到 s 中(从索引 off 开始)。
 intreadInt()
          从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),然后以 int 值的形式返回结果。
 StringreadLine()
          从输入流中读取文本的下一行。
 longreadLong()
          从流中读取 8 个字节,根据当前字节顺序将其连接(概念上),然后以 long 值的形式返回结果。
 shortreadShort()
          从流中读取两个字节,根据当前字节顺序将其连接(概念上),然后以 short 值的形式返回结果。
 intreadUnsignedByte()
          从流中读取一个字节,将其转换为 int(概念上),使用 0xff 屏蔽以便去掉所有符号扩展位,然后以 byte 值的形式返回。
 longreadUnsignedInt()
          从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),将得到的值转换为 long,使用 0xffffffffL 屏蔽以便去掉所有符号扩展位,然后以无符号 long 值的形式返回结果。
 intreadUnsignedShort()
          从流中读取两个字节,根据当前字节顺序将其连接(概念上),将得到的值转换为 int,使用 0xffff 屏蔽以便去掉所有符号扩展位,然后以无符号 int 值的形式返回结果。
 StringreadUTF()
          读入一个已使用 UTF-8 修改版格式编码的字符串。
 voidreset()
          返回在最近一次非匹配地调用 mark 时指向上一个位置(包括位偏移量)的文件指针。
 voidseek(long pos)
          将当前流位置设置为所需的位置。
 voidsetBitOffset(int bitOffset)
          将位偏移量设置为 0 到 7 之间(包含两者)的整数。
 voidsetByteOrder(ByteOrder byteOrder)
          设置希望以后从此流中读取数据值时使用的字节顺序。
 intskipBytes(int n)
          将流位置向前移动给定的字节数。
 longskipBytes(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_ENDIANjava.nio.ByteOrder.LITTLE_ENDIAN,指示以后读取时是使用网络顺序还是使用与之相反的顺序。
另请参见:
ByteOrder, getByteOrder(), readBits(int)

getByteOrder

ByteOrder getByteOrder()
java.nio.ByteOrder 枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。

返回:
ByteOrder.BIG_ENDIANByteOrder.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 - 如果 bnull
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 - 如果 bnull
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 - 如果 bufnull
IOException - 如果发生 I/O 错误。

readBoolean

boolean readBoolean()
                    throws IOException
从流中读取一个字节,如果其不为零,则返回 boolean 值的 true;如果为零,则返回 false

在进行读取前,将流中的位偏移量重置为零。

指定者:
接口 DataInput 中的 readBoolean
返回:
来自流中的 boolean 值。
抛出:
EOFException - 如果到达流末尾。
IOException - 如果发生 I/O 错误。