public abstract class ImageInputStreamImpl extends Object implements ImageInputStream
ImageInputStream
接口。
该类旨在减少子类必须实现的方法的数量。
特别地,该类处理大部分或全部字节顺序解释,缓冲,标记/复位,丢弃,关闭和处理的细节。
Modifier and Type | Field and Description |
---|---|
protected int |
bitOffset
流内的当前位偏移。
|
protected ByteOrder |
byteOrder
作为枚举类
java.nio.ByteOrder 的实例的流的字节顺序,其中
ByteOrder.BIG_ENDIAN 指示网络字节顺序和
ByteOrder.LITTLE_ENDIAN 表示相反的顺序。
|
protected long |
flushedPos
可以丢弃数据的位置。
|
protected long |
streamPos
流内当前读取的位置。
|
Constructor and Description |
---|
ImageInputStreamImpl()
构造一个
ImageInputStreamImpl 。
|
Modifier and Type | Method and Description |
---|---|
protected void |
checkClosed()
如果流已关闭,则抛出一个
IOException 。
|
void |
close()
关闭流。
|
protected void |
finalize()
在垃圾收集之前完成此对象。
|
void |
flush()
在当前流位置之前丢弃流的初始位置。
|
void |
flushBefore(long pos)
在指示的位置之前丢弃流的初始部分。
|
int |
getBitOffset()
返回当前的位偏移量,为0到7之间的整数,包括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 返回。
|
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()
从流读取一个字节,如果非零,则返回
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 个字节,并将其存储在
b 从索引
0 开始。
|
void |
readFully(byte[] b, int off, int len)
从流中读取
len 字节,并将它们存储在
b 从索引
off 开始。
|
void |
readFully(char[] c, int off, int len)
读取
len 从根据当前字节顺序的流字符(无符号的16位整数),并将其存储到
c 开始于索引
off 。
|
void |
readFully(double[] d, int off, int len)
读取
len 根据当前字节顺序从流双打(64位IEEE双精度浮点值),并且将它们存储到
d 开始于索引
off 。
|
void |
readFully(float[] f, int off, int len)
读取
len 根据当前字节顺序从流浮标(32位IEEE单精度浮点值),并且将它们存储到
f 开始于索引
off 。
|
void |
readFully(int[] i, int off, int len)
读取
len 从根据当前字节顺序的流整数(带符号的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 从根据当前字节顺序的流短裤(带符号的16位整数),并将其存储到
s 开始于索引
off 。
|
int |
readInt()
从流中读取4个字节,(在概念上)根据当前字节顺序连接它们,并以
int 返回结果。
|
String |
readLine()
从输入流读取下一行文本。
|
long |
readLong()
从流中读取8个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为
long 返回。
|
short |
readShort()
从流读取两个字节,(在概念上)根据当前字节顺序连接它们,并以
short 值返回结果。
|
int |
readUnsignedByte()
从流读取一个字节,并且(在概念上)将其转换为int,用
0xff 屏蔽它,以便剥离任何符号扩展位,并将其作为
byte 值返回。
|
long |
readUnsignedInt()
从流中读取4个字节,(在概念上)根据当前字节顺序连接它们,将结果转换为长时间,使用
0xffffffffL 屏蔽它,以便剥离任何符号扩展位,并将结果作为无符号
long 值。
|
int |
readUnsignedShort()
中读取两个字节从该流,并根据当前字节顺序(概念上)将其连接,将得到的值转换为
int ,口罩它
0xffff 为了去掉所有符号扩展位,并返回结果以无符号
int 价值。
|
String |
readUTF()
读取已使用
modified UTF-8格式编码的字符串。
|
void |
reset()
从标记位置的堆栈中重置当前流字节和位位置。
|
void |
seek(long pos)
将当前流位置设置为所需位置。
|
void |
setBitOffset(int bitOffset)
将位偏移设置为0到7之间的整数,包括0和7。
|
void |
setByteOrder(ByteOrder byteOrder)
设置用于将来从该流读取数据值的字节顺序。
|
int |
skipBytes(int n)
通过致电
seek(getStreamPosition() + n) 来
seek(getStreamPosition() + n) 当前流的位置。
|
long |
skipBytes(long n)
通过致电
seek(getStreamPosition() + n) 当前的流位置。
|
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。
protected final void checkClosed() throws IOException
IOException
。
子类可以从需要流不被关闭的任何方法调用此方法。
IOException
- 如果流关闭。
public void setByteOrder(ByteOrder byteOrder)
ImageInputStream
复制
枚举类java.nio.ByteOrder
用于指定字节顺序。 ByteOrder.BIG_ENDIAN
的值指定了所谓的大端或网元字节顺序,其中高位字节先到。 摩托罗拉和Sparc处理器以这种格式存储数据,而英特尔处理器以相反的顺序存储数据ByteOrder.LITTLE_ENDIAN
。
字节顺序对从readBits
方法(或ImageOutputStream.writeBits
写的值)返回的结果没有影响。
setByteOrder
在界面
ImageInputStream
byteOrder
-
ByteOrder.BIG_ENDIAN
或
java.nio.ByteOrder.LITTLE_ENDIAN
,指示网络字节顺序或其反向将用于将来读取。
ByteOrder
, ImageInputStream.getByteOrder()
, ImageInputStream.readBits(int)
public ByteOrder getByteOrder()
ImageInputStream
复制
java.nio.ByteOrder
枚举的实例,返回从该流读取数据值的字节顺序。
getByteOrder
在接口
ImageInputStream
ByteOrder.BIG_ENDIAN
或
ByteOrder.LITTLE_ENDIAN
中的一个,
ByteOrder.BIG_ENDIAN
正在使用哪个字节顺序。
ByteOrder
, ImageInputStream.setByteOrder(java.nio.ByteOrder)
public abstract int read() throws IOException
int
255之间0和如果达到EOF, -1
被返回。
子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
在发生读取之前,流内的位偏移必须重置为零。
read
在接口
ImageInputStream
-1
。
IOException
- 如果流已关闭。
public int read(byte[] b) throws IOException
read(b, 0, b.length)
。
在发生读取之前,流内的位偏移被重置为零。
read
在接口
ImageInputStream
b
- 要写入的字节数组。
-1
表示EOF。
NullPointerException
- 如果
b
是
null
。
IOException
- 如果发生I / O错误。
public abstract int read(byte[] b, int off, int len) throws IOException
len
从流字节,并将其存储到b
开始于索引off
。
如果没有字节可以读取,因为已经到达流的末尾,则返回-1
。
在发生读取之前,流内的位偏移必须重置为零。
子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
read
在界面
ImageInputStream
b
- 要写入的字节数组。
off
- 起始位置在
b
内写。
len
- 要读取的最大字节数。
-1
表示EOF。
IndexOutOfBoundsException
- 如果
off
为负数,
len
,否则为
off + len
,或
off + len
大于
b.length
。
NullPointerException
- 如果
b
是
null
。
IOException
- 如果发生I / O错误。
public void readBytes(IIOByteBuffer buf, int len) throws IOException
ImageInputStream
复制
len
个字节,并修改提供的IIOByteBuffer
以指示可能找到数据的字节数组,偏移量和长度。
来电者不应尝试修改IIOByteBuffer
找到的数据。
在发生读取之前,流内的位偏移被重置为零。
readBytes
在界面
ImageInputStream
buf
- 要修改的IIOByteBuffer对象。
len
- 要阅读的最大数量为
byte
。
IOException
- 如果发生I / O错误。
public boolean readBoolean() throws IOException
ImageInputStream
复制
boolean
的值true
如果是非零, false
,如果它是零。
在发生读取之前,流内的位偏移被重置为零。
readBoolean
在界面
DataInput
readBoolean
在界面
ImageInputStream
EOFException
- 如果达到流的结尾。
IOException
- 如果发生I / O错误。
public byte readByte() throws IOException
ImageInputStream
复制
byte
返回。
之间的字节值0x00
和0x7f
表示之间的整数值0
和127
。
0x80
和0xff
之间的值代表从-128
到/1
。
在发生读取之前,流内的位偏移被重置为零。
readByte
在界面
DataInput
readByte
在界面
ImageInputStream
EOFException
- 如果达到流的结尾。
IOException
- 如果发生I / O错误。
public int readUnsignedByte() throws IOException
ImageInputStream
复制
0xff
进行掩码,以剥离任何符号扩展位,并将其作为byte
返回。
因此, 0x00
和0x7f
之间的字节值简单地作为0
和127
之间的整数值返回。 0x80
和0xff
之间的值通常代表负数byte
,将被映射到128
和255
之间的正整数。
在发生读取之前,流内的位偏移被重置为零。
readUnsignedByte
在界面
DataInput
readUnsignedByte
在界面
ImageInputStream
EOFException
- 如果到达流的结尾。
IOException
- 如果发生I / O错误。
public short readShort() throws IOException
ImageInputStream
复制
short
值返回结果。
在发生读取之前,流内的位偏移被重置为零。
readShort
在界面
DataInput
readShort
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.getByteOrder()
public int readUnsignedShort() throws IOException
ImageInputStream
复制
int
对其进行0xffff
,以剥离任何符号扩展名,并将结果作为无符号返回价值int
。
在发生读取之前,流内的位偏移被重置为零。
readUnsignedShort
在界面
DataInput
readUnsignedShort
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.getByteOrder()
public char readChar() throws IOException
ImageInputStream
复制
readUnsignedShort
,除了使用char
数据类型返回结果。
在发生读取之前,流内的位偏移被重置为零。
readChar
在界面
DataInput
readChar
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.readUnsignedShort()
public int readInt() throws IOException
ImageInputStream
复制
int
返回结果。
流内的位偏移被忽略,并被视为零。
readInt
在界面
DataInput
readInt
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.getByteOrder()
public long readUnsignedInt() throws IOException
ImageInputStream
复制
0xffffffffL
屏蔽它,以便剥离任何符号扩展位,并将结果作为无符号long
值。
在发生读取之前,流内的位偏移被重置为零。
readUnsignedInt
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.getByteOrder()
public long readLong() throws IOException
ImageInputStream
复制
long
返回。
在发生读取之前,流内的位偏移被重置为零。
readLong
在界面
DataInput
readLong
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.getByteOrder()
public float readFloat() throws IOException
ImageInputStream
复制
float
返回。
在发生读取之前,流内的位偏移被重置为零。
readFloat
在界面
DataInput
readFloat
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.getByteOrder()
public double readDouble() throws IOException
ImageInputStream
复制
double
返回。
在发生读取之前,流内的位偏移被重置为零。
readDouble
在界面
DataInput
readDouble
在界面
ImageInputStream
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
ImageInputStream.getByteOrder()
public String readLine() throws IOException
ImageInputStream
复制
String
返回。
请注意,由于此方法处理字节,它不支持输入完整的Unicode字符集。
如果在甚至可以读取一个字节之前遇到文件结尾,则返回null
。 否则,每个所读取字节被转换为类型char
由零扩展。 如果遇到'\n'
'\n',则会被丢弃,读取停止。 如果遇到'\r'
'\r',则会被丢弃,如果以下字节转换为字符'\n'
,则也将被丢弃; 阅读然后停止。 如果在遇到任何一个字符'\n'
和'\r'
之前遇到文件结尾,则读取停止。 一旦阅读已经停止,则返回一个String
,其中包含读取并且不被丢弃的所有字符。 请注意,此字符串中的每个字符的值都小于\u0100
,即(char)256
。
在发生读取之前,流内的位偏移被重置为零。
readLine
在接口
DataInput
readLine
在界面
ImageInputStream
IOException
- 如果发生I / O错误。
public String readUTF() throws IOException
ImageInputStream
复制
readUTF
的一般合同是它读取以修改的UTF-8格式编码的Unicode字符串的表示;
这个字符串然后作为String
返回。
首先,使用网络字节顺序(不考虑当前字节顺序设置),以readUnsignedShort
方式的方式读取和使用两个字节构造无符号16位整数。 该整数值称为UTF长度 ,并指定要读取的其他字节数。 然后将这些字节通过组合考虑来转换为字符。 每组的长度根据组的第一个字节的值计算。 组之后的字节(如果有的话)是下一组的第一个字节。
如果一个组的第一个字节与位模式0xxxxxxx
(其中x
表示“可能是0
或1
”)相匹配,则该组由该字节组成。 该字节是零扩展形成一个字符。
如果一组的第一个字节与位模式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
。
如果在整个过程中随时遇到文件结尾,则抛出java.io.EOFException
。
在通过此过程将每个组转换为字符后,将以与输入流中读取相应组相同的顺序收集字符,以形成返回的String
。
当前字节顺序设置被忽略。
在发生读取之前,流内的位偏移被重置为零。
注意:此方法不应用于执行使用标准UTF-8的图像格式,因为此处使用的修改后的UTF-8与标准UTF-8不兼容。
readUTF
在界面
DataInput
readUTF
在界面
ImageInputStream
EOFException
- 如果此流在读取所有字节之前到达结束。
UTFDataFormatException
- 如果字节不表示字符串的有效修改的UTF-8编码。
IOException
- 如果发生I / O错误。
public void readFully(byte[] b, int off, int len) throws IOException
ImageInputStream
复制
len
个字节,并将其存储在b
从索引off
开始。
如果到达流的末尾,将抛出一个java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
DataInput
readFully
在界面
ImageInputStream
b
- 要写入的字节数组。
off
- 起始位置在
b
内写。
len
- 要阅读的最大数量为
byte
。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public void readFully(byte[] b) throws IOException
ImageInputStream
复制
b.length
从流字节,并将其存储到b
开始于索引0
。
如果达到流的末尾,将抛出一个java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
DataInput
readFully
在界面
ImageInputStream
b
-的阵列
byte
秒。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public void readFully(short[] s, int off, int len) throws IOException
ImageInputStream
复制
len
短路(带符号的16位整数),并将它们存储在s
从索引off
开始。
如果达到流的末尾,将抛出java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
ImageInputStream
s
- 要写入的短裤阵列。
off
- 起始位置在
s
内写。
len
- 要阅读的最大数量为
short
。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public void readFully(char[] c, int off, int len) throws IOException
ImageInputStream
复制
len
从根据当前字节顺序的流字符(无符号的16位整数),并将其存储到c
开始于索引off
。
如果达到流的末尾,将抛出java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
ImageInputStream
c
- 要写入的字符数组。
off
- 起始位置在
c
内写。
len
- 要阅读的最大数量为
char
。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public void readFully(int[] i, int off, int len) throws IOException
ImageInputStream
复制
len
从根据当前字节顺序的流整数(带符号的32位整数),并将其存储到i
开始于索引off
。
如果达到流的末尾,将抛出一个java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
ImageInputStream
i
- 要写入的int数组。
off
- 起始位置在
i
内写。
len
- 要阅读的最大数量为
int
。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public void readFully(long[] l, int off, int len) throws IOException
ImageInputStream
复制
len
长(有符号的64位整数),并将它们存储在l
从索引off
开始。
如果达到流的末尾,将抛出一个java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
ImageInputStream
l
- 要写入的数组。
off
- 起始位置在
l
内写。
len
- 要阅读的最大数量为
long
。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public void readFully(float[] f, int off, int len) throws IOException
ImageInputStream
复制
len
根据当前字节顺序从流浮标(32位IEEE单精度浮点值),并且将它们存储到f
开始于索引off
。
如果到达流的末尾,将抛出一个java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
ImageInputStream
f
- 要写入的浮点数组。
off
- 起始位置在
f
内写。
len
- 要阅读的最大数量为
float
。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public void readFully(double[] d, int off, int len) throws IOException
ImageInputStream
复制
len
根据当前字节顺序从流双打(64位IEEE双精度浮点值),并且将它们存储到d
开始于索引off
。
如果达到流的末尾,将抛出一个java.io.EOFException
。
在发生读取之前,流内的位偏移被重置为零。
readFully
在界面
ImageInputStream
d
- 要写入的双精度数组。
off
- 起始位置在
d
内写。
len
- 要阅读的最大数量为
double
。
EOFException
- 如果流在读取所有字节之前到达结束。
IOException
- 如果发生I / O错误。
public long getStreamPosition() throws IOException
ImageInputStream
复制
getStreamPosition
在界面
ImageInputStream
IOException
- 如果发生I / O错误。
public int getBitOffset() throws IOException
ImageInputStream
复制
readBits
方法readBits
更新位偏移。
值为0表示最高有效位,值为7表示正在读取的字节的最低有效位。
位偏移量被设置为0时,流被第一次打开,并且通过调用复位为0至seek
, skipBytes
,或任何read
或readFully
方法。
getBitOffset
在界面
ImageInputStream
int
包含0和7之间的位偏移(包括0和7)。
IOException
- 如果发生I / O错误。
ImageInputStream.setBitOffset(int)
public void setBitOffset(int bitOffset) throws IOException
ImageInputStream
复制
getStreamPosition
返回的流内的字节偏移量保持不变。
值为0表示最高有效位,值为7表示正在读取的字节的最低有效位。
setBitOffset
在界面
ImageInputStream
bitOffset
-所需的偏移量,作为
int
0和7之间,包括端值。
IOException
- 如果发生I / O错误
ImageInputStream.getBitOffset()
public int readBit() throws IOException
ImageInputStream
复制
int
与值0
或1
。
位偏移前进一并减少模8。
readBit
在界面
ImageInputStream
int
包含值
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(); }
需要注意的是的结果readBits(32)
可因此不等于的readInt()
,如果正在使用的反向网络字节顺序(即, getByteOrder() == false
)。
如果在读取所有位之前遇到流的结尾,则抛出java.io.EOFException
。
readBits
在界面
ImageInputStream
numBits
-比特数来读取,作为
int
0至64,包括端值。
long
与最后一位读取存储在最低有效位。
EOFException
- 如果流在读取所有位之前到达结束。
IOException
- 如果发生I / O错误。
public long length()
-1L
以表示该流具有未知长度。
子类必须覆盖此方法以提供实际的长度信息。
length
在界面
ImageInputStream
public int skipBytes(int n) throws IOException
seek(getStreamPosition() + n)
提高当前的流位置。
位偏移重置为零。
skipBytes
在界面
DataInput
skipBytes
在界面
ImageInputStream
n
- 要查找的字节数。
int
表示跳过的字节数。
IOException
- 如果
getStreamPosition
在计算起始位置或结束位置时抛出
IOException
。
public long skipBytes(long n) throws IOException
seek(getStreamPosition() + n)
提高当前的流位置。
位偏移重置为零。
skipBytes
在界面
ImageInputStream
n
- 要查找的字节数。
long
代表跳过的字节数。
IOException
- 如果
getStreamPosition
在计算起始位置或结束位置时抛出
IOException
。
public void seek(long pos) throws IOException
ImageInputStream
复制
一个IndexOutOfBoundsException
如果将被抛出pos
比冲洗位置(如通过返回较小getflushedPosition
)。
寻求文件结尾是合法的; 一个java.io.EOFException
会,如果执行读取只抛出。
seek
在界面
ImageInputStream
pos
- 一个
long
所需文件指针位置的long。
IOException
- 如果发生任何其他I / O错误。
public void mark()
mark
在界面
ImageInputStream
public void reset() throws IOException
一个IOException
如果先前的标记位置位于流的丢弃部分将被抛出。
reset
在界面
ImageInputStream
IOException
- 如果发生I / O错误。
public void flushBefore(long pos) throws IOException
ImageInputStream
复制
IndexOutOfBoundsException
。
调用flushBefore
可能允许实现此接口的类释放用于存储数据流的内存或磁盘空间等资源。
flushBefore
在界面
ImageInputStream
pos
- 一个
long
其中包含可能被刷新的流前缀的长度。
IOException
- 如果发生I / O错误。
public void flush() throws IOException
ImageInputStream
复制
flushBefore(getStreamPosition())
。
flush
在界面
ImageInputStream
IOException
- 如果发生I / O错误。
public long getFlushedPosition()
ImageInputStream
复制
flushBefore
。
getFlushedPosition
在界面
ImageInputStream
long
。
public boolean isCached()
isCached
在界面
ImageInputStream
true
如果这个
ImageInputStream
缓存数据。
ImageInputStream.isCachedMemory()
,
ImageInputStream.isCachedFile()
public boolean isCachedMemory()
isCachedMemory
在界面
ImageInputStream
true
如果这个
ImageInputStream
缓存数据在主内存中。
ImageInputStream.isCached()
,
ImageInputStream.isCachedFile()
public boolean isCachedFile()
isCachedFile
在界面
ImageInputStream
true
如果这个
ImageInputStream
缓存一个临时文件中的数据。
ImageInputStream.isCached()
,
ImageInputStream.isCachedMemory()
public void close() throws IOException
ImageInputStream
复制
IOException
或不正确的行为。
调用此方法可能允许实现此接口的类释放与流相关的资源,如内存,磁盘空间或文件描述符。
close
在界面
Closeable
close
在界面
AutoCloseable
close
在界面
ImageInputStream
IOException
- 如果发生I / O错误。
protected void finalize() throws Throwable
close
方法来关闭任何打开的输入源。
不应该从应用程序代码调用此方法。
finalize
在类别
Object
Throwable
- 如果在超类最终化期间发生错误。
WeakReference
, PhantomReference