public interface ImageInputStream extends DataInput, Closeable
ImageReaders。不同的输入源,如
InputStreams和
Files,以及未来的快速I/O的来源可能是“包装”的一个合适的接口使用的图像实现I/O API。
| Modifier and Type | Method and Description |
|---|---|
void |
close()
关闭流。
|
void |
flush()
弃流的初始位置到当前流的位置之前。
|
void |
flushBefore(long pos)
其流的初始部分所指示的位置之前。
|
int |
getBitOffset()
返回当前位偏移量,作为一个介于0和7之间的整数,包括。
|
ByteOrder |
getByteOrder()
返回的字节顺序的数据值将被读取该流的
java.nio.ByteOrder枚举实例。
|
long |
getFlushedPosition()
返回在流中寻找可能执行的最早的位置。
|
long |
getStreamPosition()
返回流的当前字节位置。
|
boolean |
isCached()
返回
true如果这
ImageInputStream缓存数据本身为了让寻求向后。
|
boolean |
isCachedFile()
返回
true如果这
ImageInputStream缓存数据本身为了让寻求倒退,和缓存保存在一个临时文件。
|
boolean |
isCachedMemory()
返回
true如果这
ImageInputStream缓存数据本身为了让寻求倒退,并被保存在内存中的缓存。
|
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()
从流中读取一个点并将其作为与价值
0或
1一
int。
|
long |
readBits(int numBits)
从流中读取一个位串并将其作为
long,与第一位读成为输出最重要的位。
|
boolean |
readBoolean()
从流中读取一个字节,如果是非零返回一个
true
boolean价值,
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多头(符号的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()
返回到以前的位置流指针,包括位偏移,在最近的时间
mark无与伦比的电话。
|
void |
seek(long pos)
将当前流位置设置为所需的位置。
|
void |
setBitOffset(int bitOffset)
将位偏移量设置为7和0之间的整数,包括。
|
void |
setByteOrder(ByteOrder byteOrder)
为未来从该流读取数据值设置所需的字节顺序。
|
int |
skipBytes(int n)
用给定的字节数移动流位置。
|
long |
skipBytes(long n)
用给定的字节数移动流位置。
|
void setByteOrder(ByteOrder byteOrder)
枚举类java.nio.ByteOrder用于指定的字节顺序。一个价值ByteOrder.BIG_ENDIAN指定所谓的大端或网络字节顺序,即高字节优先。该格式的摩托罗拉和SPARC处理器存储数据,而英特尔处理器的数据存储在反向ByteOrder.LITTLE_ENDIAN秩序。
字节顺序对结果没有影响的readBits方法返回(或价值由ImageOutputStream.writeBits)。
byteOrder -一个
ByteOrder.BIG_ENDIAN或
java.nio.ByteOrder.LITTLE_ENDIAN,指示网络字节顺序或反向将用于未来的阅读。
ByteOrder,
getByteOrder(),
readBits(int)
ByteOrder getByteOrder()
java.nio.ByteOrder枚举实例。
ByteOrder.BIG_ENDIAN或
ByteOrder.LITTLE_ENDIAN,说明其中的字节顺序是。
ByteOrder,
setByteOrder(java.nio.ByteOrder)
int read() throws IOException
在流中的位偏移量在读取发生之前重置为零。
IOException如果I/O错误发生。
int read(byte[] b) throws IOException
b.length字节流,并将它们存储到
b从指数0。读取的字节数返回。如果没有字节可以读取,因为流的结束已达到,- 1返回。
在流中的位偏移量在读取发生之前重置为零。
b -字节被写入到数组。
-1指示EOF。
null
b
NullPointerException。
IOException如果I/O错误发生。
int read(byte[] b,
int off,
int len)
throws IOException
len字节流,并将它们存储到
b从指数
off。读取的字节数返回。如果没有字节可以读取因为已到达流的末尾,则返回
-1。
在流中的位偏移量在读取发生之前重置为零。
b -字节被写入到数组。
off -起始位置在
b写。
len -
bytes最大数读。
-1指示EOF。
null
b
NullPointerException。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
b.length。
IOException如果I/O错误发生。
void readBytes(IIOByteBuffer buf, int len) throws IOException
len字节,并修改所提供的
IIOByteBuffer表示字节数组,偏移,和长度的数据可以发现。打电话的人不应该试图修改数据的
IIOByteBuffer发现。
在流中的位偏移量在读取发生之前重置为零。
buf - iiobytebuffer对象被修改。
len -
bytes最大数读。
IndexOutOfBoundsException -如果
len是负的。
null
buf
NullPointerException。
IOException如果I/O错误发生。
boolean readBoolean()
throws IOException
boolean
true,
false如果是零。
在流中的位偏移量在读取发生之前重置为零。
readBoolean 接口
DataInput
EOFException如果到达流的末尾。
IOException如果I/O错误发生。
byte readByte()
throws IOException
byte价值。
0x00和
0x7f之间的字节值代表
0和
127之间的整数的值。
0x80和
0xff之间的值代表
/1从
-128负值。
在流中的位偏移量在读取发生之前重置为零。
readByte 接口
DataInput
EOFException如果到达流的末尾。
IOException如果I/O错误发生。
int readUnsignedByte()
throws IOException
0xff为了脱掉任何符号扩展位,并将其作为
byte价值。
因此,0x00和0x7f之间的字节值只是返回0和127之间的整数的值。0x80和0xff之间的值,通常是负面的bytevalues,将映射到128和255之间的正整数。
在流中的位偏移量在读取发生之前重置为零。
readUnsignedByte 接口
DataInput
EOFException如果到达流的末尾。
IOException如果I/O错误发生。
short readShort()
throws IOException
short值返回结果。
在流中的位偏移量在读取发生之前重置为零。
readShort 接口
DataInput
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
getByteOrder()
int readUnsignedShort()
throws IOException
int,面具与
0xffff为了脱掉任何符号扩展,但是,作为一个符号
int值返回结果。
在流中的位偏移量在读取发生之前重置为零。
readUnsignedShort 接口
DataInput
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
getByteOrder()
char readChar()
throws IOException
readUnsignedShort,除了返回的结果是使用
char数据类型。
在流中的位偏移量在读取发生之前重置为零。
readChar 接口
DataInput
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
readUnsignedShort()
int readInt()
throws IOException
int返回结果。
流中的位偏移量被忽略,并处理过,好像它是零。
readInt 接口
DataInput
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
getByteOrder()
long readUnsignedInt()
throws IOException
0xffffffffL为了脱掉任何符号扩展位,作为一个符号
long值返回结果。
在流中的位偏移量在读取发生之前重置为零。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
getByteOrder()
long readLong()
throws IOException
long返回结果。
在流中的位偏移量在读取发生之前重置为零。
readLong 接口
DataInput
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
getByteOrder()
float readFloat()
throws IOException
float返回结果。
在流中的位偏移量在读取发生之前重置为零。
readFloat 接口
DataInput
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
getByteOrder()
double readDouble()
throws IOException
double返回结果。
在流中的位偏移量在读取发生之前重置为零。
readDouble 接口
DataInput
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
getByteOrder()
String readLine() throws IOException
String然后返回。请注意,因为此方法处理字节,它不支持完整的Unicode字符集的输入。
如果文件结束之前遇到甚至一个字节可以读取,然后null返回。否则,每个字节读取由零扩展转换为类型char。如果遇到的是性格'\n',它是被丢弃的,阅读时。如果遇到的是性格'\r',就丢弃,如果下面的字节转换为字符'\n',然后被丢弃的也;阅读然后停止。如果文件结束之前遇到的人物'\n'和'\r'时,停止阅读。一旦阅读已经停止,一个String返回包含所有字符读不丢弃,以。请注意,此字符串中的每个字符都有一个值小于\u0100,即(char)256。
在流中的位偏移量在读取发生之前重置为零。
readLine 接口
DataInput
IOException如果I/O错误发生。
String readUTF() throws IOException
readUTF一般合同,它读取Unicode字符串在改进后的UTF-8编码格式的表示;这个字符串是作为
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不匹配B它的模式
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
EOFException如果流到达终点之前阅读所有字节。
UTFDataFormatException如果字节没有表示一个有效的修改一个字符串编码UTF-8。
IOException如果I/O错误发生。
void readFully(byte[] b,
int off,
int len)
throws IOException
len字节流,并将它们存储到
b从指数
off。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
readFully 接口
DataInput
b -字节被写入到数组。
off -起始位置在
b写。
len -
bytes最大数读。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
b.length。
null
b
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(byte[] b)
throws IOException
b.length字节流,并将它们存储到
b从指数
0。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
readFully 接口
DataInput
b -
bytes数组。
null
b
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(short[] s,
int off,
int len)
throws IOException
len短裤(有符号的16位整数)从流根据当前字节顺序,并将它们存储到
s从指数
off。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
s -短裤被写入数组。
off -起始位置在
s写。
len -
shorts最大数读。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
s.length。
null
s
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(char[] c,
int off,
int len)
throws IOException
len字符(16位无符号整数)从流根据当前字节顺序,并将它们存储到
c从指数
off。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
c -字符被写入数组。
off -起始位置在
c写。
len -
chars最大数读。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
c.length。
null
c
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(int[] i,
int off,
int len)
throws IOException
len整型(签署从流32位整数)根据当前的字节顺序,并将它们存储到
i从指数
off。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
i -整数写入数组。
off -起始位置在
i写。
len -
ints最大数读。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
i.length。
null
i
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(long[] l,
int off,
int len)
throws IOException
len多头(符号的64位整数)从流根据当前字节顺序,并将它们存储到
l从指数
off。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
l -一系列的渴望被写入。
off -起始位置在
l写。
len -
longs最大数读。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
l.length。
null
l
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(float[] f,
int off,
int len)
throws IOException
len花车(32位IEEE单精度浮)从流根据当前字节顺序,并将它们存储到
f从指数
off。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
f -彩车要写入数组。
off -起始位置在
f写。
len -
floats最大数读。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
f.length。
null
f
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
void readFully(double[] d,
int off,
int len)
throws IOException
len双打(64位IEEE双精度浮点数)从流根据当前字节顺序,并将它们存储到
d从指数
off。如果到达流的末尾,一个
java.io.EOFException将抛出。
在流中的位偏移量在读取发生之前重置为零。
d -双打被写入数组。
off -起始位置在
d写。
len -
doubles最大数读。
IndexOutOfBoundsException -如果
off是负的,
len是负的,或
off + len大于
d.length。
null
d
NullPointerException。
EOFException如果流到达终点之前阅读所有字节。
IOException如果I/O错误发生。
long getStreamPosition()
throws IOException
IOException如果I/O错误发生。
int getBitOffset()
throws IOException
readBits更新方法。一个值为0表示最重要的位,和一个值为7表示最不显着的位,被读取的字节。
位偏移设置为0流时先打开,并设置为0的电话seek,skipBytes,或任何read或readFully方法。
int含0和7之间的偏位,包容。
IOException如果I/O错误发生。
setBitOffset(int)
void setBitOffset(int bitOffset)
throws IOException
getStreamPosition,保持不变。一个值为0表示最重要的位,和一个值为7表示最不显着的位,被读取的字节。
bitOffset -所需的偏移量,在0和7之间的
int,包容。
IllegalArgumentException -如果
bitOffset不是0和7之间,包容。
IOException如果I/O错误发生。
getBitOffset()
int readBit()
throws IOException
0或
1一
int。位偏移是先进一降低模8。
int含有值的
0或
1。
EOFException如果流到达终点之前阅读所有位。
IOException如果I/O错误发生。
long readBits(int numBits)
throws IOException
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抛出。
numBits -读取的字节数,如0和64之间的一个
int,包容。
long读取存储在最低有效位。
IllegalArgumentException -如果
numBits不是0和64之间,包容。
EOFException如果流到达终点之前阅读所有位。
IOException如果I/O错误发生。
long length()
throws IOException
-1返回。
long含流,如果已知的长度,否则
-1。
IOException如果I/O错误发生。
int skipBytes(int n)
throws IOException
skipBytes 接口
DataInput
n -
int包含的字节数被跳过。
int跳过的字节数。
IOException如果I/O错误发生。
long skipBytes(long n)
throws IOException
skipBytes(int)除外,它允许一个更大的跳跃距离。
n -
long包含的字节数被跳过。
long表示字节数跳过。
IOException如果I/O错误发生。
void seek(long pos) throws IOException
如果将一个IndexOutOfBoundsException pos小于冲洗位置抛出(返回的getflushedPosition)。
它寻找过去的文件是合法的;一个java.io.EOFException才可以执行读扔。
pos -
long含有所需的文件指针的位置。
IndexOutOfBoundsException -如果
pos小于刷新位置。
IOException -如果任何其他发生I/O错误。
void mark()
reset。不同于标准
InputStream,所有
ImageInputStreams支持标记。此外,电话
mark和
reset可以任意嵌套。
不像mark方法宣布由Reader和InputStream接口,没有readLimit参数使用。任意数量的数据可以被读取后,打电话mark。
由readBits方法使用的位的位置被保存并由每对电话mark和reset恢复。
注意一个ImageReader叫flushBefore作为读操作的一部分,它是有效的。因此,如果应用程序调用mark过往,流到ImageReader之前,应用程序不应该假定标记的位置将读操作完成后仍然有效。
void reset()
throws IOException
mark无与伦比的时间。
电话reset没有相应的调用mark没有影响。
一个IOException将如果先前标记的位置位于废弃的流部分抛出。
IOException如果I/O错误发生。
void flushBefore(long pos)
throws IOException
IndexOutOfBoundsException。
打电话flushBefore允许实现了这个接口的类来释放资源如内存或磁盘空间被用来存储数据流。
pos -
long含流前缀可能冲长度。
IndexOutOfBoundsException -如果
pos在于通红的流部分或过去的当前流的位置。
IOException如果I/O错误发生。
void flush()
throws IOException
flushBefore(getStreamPosition())。
IOException如果I/O错误发生。
long getFlushedPosition()
flushBefore最大。
long。
boolean isCached()
true如果这
ImageInputStream缓存数据本身为了让寻求向后。应用程序可以协商这个,以决定如何频繁,或是否,以刷新以节省缓存资源。
true
ImageInputStream缓存数据。
isCachedMemory(),
isCachedFile()
boolean isCachedMemory()
true如果这
ImageInputStream缓存数据本身为了让寻求倒退,并被保存在内存中的缓存。应用程序可以协商这个,以决定如何频繁,或是否,以刷新以节省缓存资源。
true
ImageInputStream缓存在内存中的数据。
isCached(),
isCachedFile()
boolean isCachedFile()
true如果这
ImageInputStream缓存数据本身为了让寻求倒退,和缓存保存在一个临时文件。应用程序可以协商这个,以决定如何频繁,或是否,以刷新以节省缓存资源。
true
ImageInputStream缓存数据在一个临时文件。
isCached(),
isCachedMemory()
void close()
throws IOException
IOExceptions或不正确的行为。调用此方法可允许类实现此接口,以释放与流关联的资源,如内存、磁盘空间或文件描述符。
close 接口
AutoCloseable
close 接口
Closeable
IOException如果I/O错误发生。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.