|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.imageio.stream
类 ImageInputStreamImpl
java.lang.Object javax.imageio.stream.ImageInputStreamImpl
- 所有已实现的接口:
- DataInput, ImageInputStream
- 直接已知子类:
- FileCacheImageInputStream, FileImageInputStream, ImageOutputStreamImpl, MemoryCacheImageInputStream
-
public abstract class ImageInputStreamImpl
- extends Object
- implements ImageInputStream
实现 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() 从流中读取单个字节,并以整数(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() 读取一个输入字节,如果该字节不是零,则返回 true ,如果是零,则返回 false 。 |
byte |
readByte() 读取并返回一个输入字节。 |
void |
readBytes(IIOByteBuffer buf, int len) 从流中读取至多 len 个字节,并修改提供的 IIOByteBuffer 来指示可以用来找到数据的字节数组、偏移量以及长度。 |
char |
readChar() 读取一个输入的 char 并返回该 char 值。 |
double |
readDouble() 读取八个输入字节并返回一个 double 值。 |
float |
readFloat() 读取四个输入字节并返回一个 float 值。 |
void |
readFully(byte[] b) 从输入流中读取一些字节,并将它们存储到缓冲区数组 b 中。 |
void |
readFully(byte[] b, int off, int len) 从输入流中读取 len 个字节。 |
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() 读取四个输入字节并返回一个 int 值。 |
String |
readLine() 从输入流中读取下一文本行。 |
long |
readLong() 读取八个输入字节并返回一个 long 值。 |
short |
readShort() 读取两个输入字节并返回一个 short 值。 |
int |
readUnsignedByte() 读取一个输入字节,将它左侧补零 (zero-extend) 转变为 int 类型,并返回结果,所以结果的范围是 0 到 255 。 |
long |
readUnsignedInt() 从流中读取 4 个字节,根据当前字节顺序将其连接(概念上),将得到的值转换为 long,使用 0xffffffffL 屏蔽以便去掉所有符号扩展位,然后以无符号 long 值的形式返回结果。 |
int |
readUnsignedShort() 读取两个输入字节,并返回 0 到 65535 范围内的一个 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 |
字段详细信息 |
---|
byteOrder
protected ByteOrder byteOrder
-
流的字节顺序,其为枚举类
java.nio.ByteOrder
的实例,其中ByteOrder.BIG_ENDIAN
指示网络字节顺序,ByteOrder.LITTLE_ENDIAN
指示反向顺序。默认情况下,该值为ByteOrder.BIG_ENDIAN
。
streamPos
protected long streamPos
-
流中的当前读取位置。子类负责根据其重写的任何会改变读取位置的方法保持此值最新。
bitOffset
protected int bitOffset
-
流中的当前位偏移量。子类负责根据其重写的任何会改变位偏移量的方法保持此值最新。
flushedPos
protected long flushedPos
-
可能丢弃的数据前面的那个位置。不允许查找较小的位置。
flushedPos
将总是 >= 0。
构造方法详细信息 |
---|
ImageInputStreamImpl
public ImageInputStreamImpl()
-
构造一个
ImageInputStreamImpl
。
方法详细信息 |
---|
checkClosed
protected final void checkClosed() throws IOException
-
如果已经关闭流,则抛出
IOException
。子类可以从其任何要求不关闭流的方法中调用此方法。 -
-
- 抛出:
-
IOException
- 如果已关闭流。
setByteOrder
public void setByteOrder(ByteOrder byteOrder)
-
从接口
ImageInputStream
复制的描述 -
设置希望以后从此流中读取数据值时使用的字节顺序。例如,如果以 4 字节整数形式读取字节序列 '0x01 0x02 0x03 0x04',则使用网络字节顺序时结果为值 '0x01020304',使用逆向字节顺序时为值 '0x04030201'。
枚举类
java.nio.ByteOrder
用于指定字节顺序。值ByteOrder.BIG_ENDIAN
指定所谓的 big-endian 或网络字节顺序,该顺序中高位字节在前。Motorola 和 Sparc 处理器用此格式存储数据,而 Intel 处理器使用与之相反的ByteOrder.LITTLE_ENDIAN
顺序存储数据。字节顺序对
readBits
方法返回的结果(或ImageOutputStream.writeBits
写入的值)没有任何影响。 -
- 指定者:
-
接口
ImageInputStream
中的setByteOrder
-
- 参数:
-
byteOrder
-ByteOrder.BIG_ENDIAN
或java.nio.ByteOrder.LITTLE_ENDIAN
,指示以后读取时是使用网络顺序还是使用与之相反的顺序。 - 另请参见:
-
ByteOrder
,ImageInputStream.getByteOrder()
,ImageInputStream.readBits(int)
getByteOrder
public ByteOrder getByteOrder()
-
从接口
ImageInputStream
复制的描述 -
以
java.nio.ByteOrder
枚举实例的形式返回从此流中读取数据值时所使用的字节顺序。 -
- 指定者:
-
接口
ImageInputStream
中的getByteOrder
-
- 返回:
-
ByteOrder.BIG_ENDIAN
或ByteOrder.LITTLE_ENDIAN
,指示要使用的字节顺序。 - 另请参见:
-
ByteOrder
,ImageInputStream.setByteOrder(java.nio.ByteOrder)
read
public abstract int read() throws IOException
-
从接口
ImageInputStream
复制的描述 -
从流中读取单个字节,并以整数(0 到 255 之间)形式返回该字节。如果到达流末尾,则返回 -1。
在进行读取前,将流中的位偏移量重置为零。
-
- 指定者:
-
接口
ImageInputStream
中的read
-
- 返回:
- 流中的 int 形式的字节值;或者 -1,指示 EOF(文件结束标记)。
- 抛出:
-
IOException
- 如果发生 I/O 错误。