所有类


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

方法摘要
 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()
          从流中读取单个字节,并以 int01)的形式返回该字节。
 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_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 错误。

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部