- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
-
- All Implemented Interfaces:
-
Closeable,DataInput,AutoCloseable,ImageInputStream
- 已知直接子类:
-
FileCacheImageInputStream,FileImageInputStream,ImageOutputStreamImpl,MemoryCacheImageInputStream
public abstract class ImageInputStreamImpl extends Object implements ImageInputStream
一个实现ImageInputStream接口的抽象类。 该类旨在减少子类必须实现的方法的数量。特别地,该类处理大部分或全部字节顺序解释,缓冲,标记/复位,丢弃,关闭和处理的细节。
-
-
Field Summary
Fields Modifier and Type Field 描述 protected intbitOffset流内的当前位偏移。protected ByteOrderbyteOrder作为枚举类别java.nio.ByteOrder的实例的流的字节顺序,其中ByteOrder.BIG_ENDIAN指示网络字节顺序和ByteOrder.LITTLE_ENDIAN表示相反的顺序。protected longflushedPos可以丢弃数据的位置。protected longstreamPos流内当前读取的位置。
-
构造方法摘要
构造方法 Constructor 描述 ImageInputStreamImpl()构造一个ImageInputStreamImpl。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 protected voidcheckClosed()如果流已关闭,则抛出一个IOException。voidclose()关闭流。protected voidfinalize()已过时。finalize方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代的清理机制并删除覆盖的finalize方法。 当覆盖finalize方法时,其实现必须明确确保按照super.finalize()中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.finalize()的规范。voidflush()在当前流位置之前丢弃流的初始位置。voidflushBefore(long pos)在指示的位置之前丢弃流的初始部分。intgetBitOffset()返回当前的位偏移量,为0到7之间的整数,包括0和7。ByteOrdergetByteOrder()作为java.nio.ByteOrder枚举的实例,返回从该流读取数据值的字节顺序。longgetFlushedPosition()返回可以执行搜索的流中的最早位置。longgetStreamPosition()返回流的当前字节位置。booleanisCached()默认实现返回false。booleanisCachedFile()默认实现返回false。booleanisCachedMemory()默认实现返回false。longlength()返回-1L以指示流长度不明确。voidmark()将当前流位置推送到标记位置的堆栈。abstract intread()从流中读取一个字节,并将其作为int和255之间的int返回。intread(byte[] b)一个方便的方法,调用read(b, 0, b.length)。abstract intread(byte[] b, int off, int len)读取到len从流字节,并将其存储到b开始于索引off。intreadBit()从该流读取的单个比特,并返回它作为一个int与值0或1。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从流字节,并将其存储到b开始于索引0。voidreadFully(byte[] b, int off, int len)读取len从流字节,并将其存储到b开始于索引off。voidreadFully(char[] c, int off, int len)读取len从根据当前字节顺序的流字符(无符号的16位整数),并将其存储到c开始于索引off。voidreadFully(double[] d, int off, int len)读取len根据当前字节顺序从流双打(64位IEEE双精度浮点值),并且将它们存储到d开始于索引off。voidreadFully(float[] f, int off, int len)读取len根据当前字节顺序从流浮标(32位IEEE单精度浮点值),并且将它们存储到f开始于索引off。voidreadFully(int[] i, int off, int len)读取len从根据当前字节顺序的流整数(带符号的32位整数),并将其存储到i开始于索引off。voidreadFully(long[] l, int off, int len)读取len从根据当前字节顺序的流long(有符号的64位整数),并将其存储到l开始于索引off。voidreadFully(short[] s, int off, int len)读取len从根据当前字节顺序的流短裤(带符号的16位整数),并将其存储到s开始于索引off。intreadInt()从流中读取4个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为int返回。StringreadLine()从输入流读取下一行文本。longreadLong()从流中读取8个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为long返回。shortreadShort()从流中读取两个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为short值返回。intreadUnsignedByte()从流中读取一个字节,并且(在概念上)将其转换为int,使用0xff对其进行0xff,以便剥离任何符号扩展位,并将其作为byte值返回。longreadUnsignedInt()从流中读取4个字节,(概念上)根据当前字节顺序连接它们,将结果转换为长时间,将其用0xffffffffL屏蔽,以剥离任何符号扩展位,并将结果作为无符号返回long值。intreadUnsignedShort()从流中读取两个字节,(在概念上)根据当前字节顺序连接它们,将结果值转换为int,使用0xffff屏蔽它,以便剥离任何符号扩展名,并将结果作为无符号返回价值int。StringreadUTF()读取已使用 modified UTF-8格式编码的字符串。voidreset()从标记位置的堆栈中重置当前流字节和位位置。voidseek(long pos)将当前流位置设置为所需位置。voidsetBitOffset(int bitOffset)将位偏移设置为0到7之间的整数,包括0和7。voidsetByteOrder(ByteOrder byteOrder)设置用于将来从该流读取数据值的字节顺序。intskipBytes(int n)通过致电seek(getStreamPosition() + n)当前的流位置。longskipBytes(long n)通过致电seek(getStreamPosition() + n)前进当前流位置。
-
-
-
字段详细信息
-
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。
-
-
方法详细信息
-
checkClosed
protected final void checkClosed() throws IOException如果流已关闭,则抛出一个IOException。 子类可以从需要流不被关闭的任何方法调用此方法。- 异常
-
IOException- 如果流关闭。
-
setByteOrder
public void setByteOrder(ByteOrder byteOrder)
描述从接口ImageInputStream复制设置用于将来从该流读取数据值的字节顺序。 例如,如果以4字节整数读取,字节“0x01 0x02 0x03 0x04”的序列将以反向字节顺序使用网络字节顺序,值为“0x04030201”。枚举类
java.nio.ByteOrder用于指定字节顺序。 值为ByteOrder.BIG_ENDIAN指定所谓的大端或网络字节顺序,其中高位字节首先出现。 摩托罗拉和Sparc处理器以这种格式存储数据,而英特尔处理器按照ByteOrder.LITTLE_ENDIAN顺序存储数据。字节顺序对从
readBits方法返回的结果(或由ImageOutputStream.writeBits编写的值)没有影响。- Specified by:
-
setByteOrder在接口ImageInputStream - 参数
-
byteOrder-ByteOrder.BIG_ENDIAN或java.nio.ByteOrder.LITTLE_ENDIAN,表示网络字节顺序或其反向将用于将来读取。 - 另请参见:
-
ByteOrder,ImageInputStream.getByteOrder(),ImageInputStream.readBits(int)
-
getByteOrder
public ByteOrder getByteOrder()
描述从接口ImageInputStream复制作为java.nio.ByteOrder枚举的实例,返回从该流读取数据值的字节顺序。- Specified by:
-
getByteOrder在接口ImageInputStream - 结果
-
一个
ByteOrder.BIG_ENDIAN或ByteOrder.LITTLE_ENDIAN,指示正在使用哪个字节顺序。 - 另请参见:
-
ByteOrder,ImageInputStream.setByteOrder(java.nio.ByteOrder)
-
read
public abstract int read() throws IOException从流中读取一个字节,并将其作为int在0到255之间返回。如果达到EOF,则返回-1。子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
在发生读取之前,流内的位偏移必须重置为零。
- Specified by:
-
read在接口ImageInputStream - 结果
-
流中下一个字节的值,如果达到EOF,
-1。 - 异常
-
IOException- 如果流已关闭。
-
read
public int read(byte[] b) throws IOException一个方便的方法,调用read(b, 0, b.length)。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
read在接口ImageInputStream - 参数
-
b- 要写入的字节数组。 - 结果
-
实际读取的字节数,或
-1表示EOF。 - 异常
-
NullPointerException- 如果b是null。 -
IOException- 如果发生I / O错误。
-
read
public abstract int read(byte[] b, int off, int len) throws IOException从流中读取最多len个字节,并将其存储到b,索引号为off。 如果没有字节可以读取,因为已经到达流的末尾,则返回-1。在发生读取之前,流内的位偏移必须重置为零。
子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
- Specified by:
-
read接口ImageInputStream - 参数
-
b- 要写入的字节数组。 -
off- 起始位置在b内写。 -
len- 要读取的最大字节数。 - 结果
-
实际读取的字节数,或
-1表示EOF。 - 异常
-
IndexOutOfBoundsException- 如果off为负数,len为负数,或off + len大于b.length。 -
NullPointerException- 如果b是null。 -
IOException- 如果发生I / O错误。
-
readBytes
public void readBytes(IIOByteBuffer buf, int len) throws IOException
描述从接口ImageInputStream复制从流中读取最多len个字节,并修改提供的IIOByteBuffer以指示可能找到数据的字节数组,偏移量和长度。 来电者不应该尝试修改在IIOByteBuffer找到的数据。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readBytes在接口ImageInputStream - 参数
-
buf- 要修改的IIOByteBuffer对象。 -
len- 要阅读的最大数量byte。 - 异常
-
IOException- 如果发生I / O错误。
-
readBoolean
public boolean readBoolean() throws IOException描述从接口ImageInputStream复制从该流读取一个字节,并返回一个boolean的值true,如果它是非零,false,如果它是零。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readBoolean在接口DataInput - Specified by:
-
readBoolean在接口ImageInputStream - 结果
- 来自流的布尔值。
- 异常
-
EOFException- 如果到达流的末尾。 -
IOException- 如果发生I / O错误。
-
readByte
public byte readByte() throws IOException描述从接口ImageInputStream复制从流中读取一个字节,并将其作为byte值返回。0x00和0x7f之间的字节值表示0和127之间的整数值。0x80和0xff之间的值代表从-128到/1。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readByte在接口DataInput - Specified by:
-
readByte在接口ImageInputStream - 结果
- 来自流的有符号字节值。
- 异常
-
EOFException- 如果到达流的末尾。 -
IOException- 如果发生I / O错误。
-
readUnsignedByte
public int readUnsignedByte() throws IOException说明从界面:ImageInputStream复制从流读取一个字节,(在概念上)将其转换为int,用0xff对其进行0xff,以剥离任何符号扩展位,并将其作为byte值返回。因此,
0x00和0x7f之间的字节值仅作为0和127之间的整数值返回。0x80和0xff之间的值通常表示负byte值,将映射到128和255之间的正整数。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readUnsignedByte在接口DataInput - Specified by:
-
readUnsignedByte在接口ImageInputStream - 结果
- 来自流的无符号字节值。
- 异常
-
EOFException- 如果到达流的末尾。 -
IOException- 如果发生I / O错误。
-
readShort
public short readShort() throws IOException描述从接口ImageInputStream复制从流读取两个字节,(概念上)根据当前字节顺序连接它们,并将结果作为short返回。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readShort在接口DataInput - Specified by:
-
readShort在接口ImageInputStream - 结果
- 从流中签名的短值。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getByteOrder()
-
readUnsignedShort
public int readUnsignedShort() throws IOException描述从接口ImageInputStream复制从流中读取两个字节,(在概念上)根据当前字节顺序连接它们,将结果值转换为int,使用0xffff屏蔽它,以剥离任何符号扩展名,并将结果作为无符号返回价值int。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readUnsignedShort在接口DataInput - Specified by:
-
readUnsignedShort在接口ImageInputStream - 结果
- 来自流的无符号短值,作为int。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getByteOrder()
-
readChar
public char readChar() throws IOException描述从接口ImageInputStream复制相当于readUnsignedShort,除了使用char数据类型返回结果。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readChar在接口DataInput - Specified by:
-
readChar在接口ImageInputStream - 结果
- 来自流的无符号字符值。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.readUnsignedShort()
-
readInt
public int readInt() throws IOException说明从接口ImageInputStream复制从流中读取4个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为int返回。流内的位偏移被忽略,并被视为零。
- Specified by:
-
readInt在接口DataInput - Specified by:
-
readInt接口ImageInputStream - 结果
- 来自流的已签名的int值。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getByteOrder()
-
readUnsignedInt
public long readUnsignedInt() throws IOException描述从接口ImageInputStream复制从流中读取4个字节,并且(在概念上)根据当前字节顺序连接它们,将结果转换为长,将其用0xffffffffL,以便剥离任何符号扩展位,并将结果作为无符号的long返回值。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readUnsignedInt在接口ImageInputStream - 结果
- 来自流的无符号int值,长久。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getByteOrder()
-
readLong
public long readLong() throws IOException描述从接口ImageInputStream复制从流中读取8个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为long返回。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readLong在接口DataInput - Specified by:
-
readLong在接口ImageInputStream - 结果
- 从流中签名的长值。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getByteOrder()
-
readFloat
public float readFloat() throws IOException描述从接口ImageInputStream复制从流中读取4个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为float返回。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFloat在接口DataInput - Specified by:
-
readFloat在接口ImageInputStream - 结果
- 来自流的浮点值。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getByteOrder()
-
readDouble
public double readDouble() throws IOException描述从接口ImageInputStream复制从流中读取8个字节,(在概念上)根据当前字节顺序连接它们,并将结果作为double返回。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readDouble在接口DataInput - Specified by:
-
readDouble在接口ImageInputStream - 结果
- 来自流的双重值。
- 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getByteOrder()
-
readLine
public String readLine() throws IOException
描述从接口ImageInputStream复制从输入流读取下一行文本。 它读取连续字节,将每个字节分别转换为字符,直到遇到行终止符或文件结尾; 读取的字符然后作为String返回。 请注意,由于此方法处理字节,它不支持输入完整的Unicode字符集。如果在甚至可以读取一个字节之前遇到文件结束,则返回
null。 否则,读取的每个字节将通过零扩展转换为类型char。 如果遇到字符'\n',则会被丢弃,读取停止。 如果遇到字符'\r',则将其丢弃,如果以下字节转换为字符'\n',则也将被丢弃; 阅读然后停止。 如果在遇到任何一个字符'\n'和'\r'之前遇到文件结尾,则读取停止。 一旦读取停止,将返回一个String,其中包含读取并且不被丢弃的所有字符。 请注意,此字符串中的每个字符都将具有小于\u0100的值,即(char)256。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readLine在接口DataInput - Specified by:
-
readLine在接口ImageInputStream - 结果
- 一个包含流中文本行的字符串。
- 异常
-
IOException- 如果发生I / O错误。
-
readUTF
public String readUTF() throws IOException
描述从接口ImageInputStream复制读取已使用modified UTF-8格式编码的字符串。readUTF的一般合同是它读取以修改的UTF-8格式编码的Unicode字符串的表示; 这个字符串然后作为一个String返回。首先,使用网络字节顺序(无论当前字节顺序设置如何),以
readUnsignedShort方式读取和使用两个字节构造无符号16位整数。 该整数值称为UTF长度,并指定要读取的其他字节数。 然后将这些字节通过组合考虑来转换为字符。 每组的长度根据组的第一个字节的值计算。 组之后的字节(如果有的话)是下一组的第一个字节。如果组的第一个字节与位模式
0xxxxxxx(其中x表示“可能是0或1”)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不兼容。
- Specified by:
-
readUTF在接口DataInput - Specified by:
-
readUTF在接口ImageInputStream - 结果
- 从流中读取的字符串。
- 异常
-
EOFException- 如果此流在读取所有字节之前到达结束。 -
UTFDataFormatException- 如果字节不表示字符串的有效修改的UTF-8编码。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(byte[] b, int off, int len) throws IOException描述从接口ImageInputStream复制从流中读取len个字节,并将其存储到b,索引号为off。 如果达到流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口DataInput - Specified by:
-
readFully在接口ImageInputStream - 参数
-
b- 要写入的字节数组。 -
off- 起始位置在b内写。 -
len- 要阅读的最大数量byte。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(byte[] b) throws IOException说明从界面ImageInputStream复制读取b.length从流字节,并将其存储到b开始于索引0。 如果到达流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口DataInput - Specified by:
-
readFully在接口ImageInputStream - 参数
-
b-的阵列byte秒。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(short[] s, int off, int len) throws IOException描述从接口ImageInputStream复制读取len从根据当前字节顺序的流短裤(带符号的16位整数),并将其存储到s开始于索引off。 如果达到流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口ImageInputStream - 参数
-
s- 要写入的短裤阵列。 -
off- 起始位置在s内写。 -
len- 要阅读的最大数量short。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(char[] c, int off, int len) throws IOException描述从接口ImageInputStream复制读取len从根据当前字节顺序的流字符(无符号的16位整数),并将其存储到c开始于索引off。 如果达到流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口ImageInputStream - 参数
-
c- 要写入的字符数组。 -
off- 起始位置在c内写。 -
len- 要阅读的最大数量char。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(int[] i, int off, int len) throws IOException说明从接口ImageInputStream复制读取len从根据当前字节顺序的流整数(带符号的32位整数),并将其存储到i开始于索引off。 如果达到流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口ImageInputStream - 参数
-
i- 要写入的int数组。 -
off- 起始位置在i内写。 -
len- 要阅读的最大数量int。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(long[] l, int off, int len) throws IOException描述从接口ImageInputStream复制读取len从根据当前字节顺序的流long(有符号的64位整数),并将其存储到l开始于索引off。 如果达到流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口ImageInputStream - 参数
-
l- 要写入的数组。 -
off- 起始位置在l内写。 -
len- 要阅读的最大数量long。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(float[] f, int off, int len) throws IOException描述从接口ImageInputStream复制读取len根据当前字节顺序从流浮标(32位IEEE单精度浮点值),并且将它们存储到f开始于索引off。 如果达到流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口ImageInputStream - 参数
-
f- 要写入的浮点数组。 -
off- 起始位置在f内写。 -
len- 要阅读的最大数量float。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
readFully
public void readFully(double[] d, int off, int len) throws IOException描述从接口ImageInputStream复制读取len根据当前字节顺序从流双打(64位IEEE双精度浮点值),并且将它们存储到d开始于索引off。 如果达到流的末尾,将抛出一个java.io.EOFException。在发生读取之前,流内的位偏移被重置为零。
- Specified by:
-
readFully在接口ImageInputStream - 参数
-
d- 要写入的双精度数组。 -
off- 起始位置在d内写。 -
len- 要阅读的最大数量double。 - 异常
-
EOFException- 如果流在读取所有字节之前到达结束。 -
IOException- 如果发生I / O错误。
-
getStreamPosition
public long getStreamPosition() throws IOException描述从接口ImageInputStream复制返回流的当前字节位置。 下一次读取将从此偏移开始。- Specified by:
-
getStreamPosition在接口ImageInputStream - 结果
- 一个长的包含流的位置。
- 异常
-
IOException- 如果发生I / O错误。
-
getBitOffset
public int getBitOffset() throws IOException描述从接口ImageInputStream复制返回当前的位偏移量,为0到7之间的整数,包括0和7。 通过调用readBits方法隐式更新位偏移。 值为0表示最高有效位,值为7表示正在读取的字节的最低有效位。位偏移量被设置为0时,流被第一次打开,并且通过调用复位为0至
seek,skipBytes,或任何read或readFully方法。- Specified by:
-
getBitOffset在接口ImageInputStream - 结果
-
一个
int包含0到7之间的位偏移量,包括0和7。 - 异常
-
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.setBitOffset(int)
-
setBitOffset
public void setBitOffset(int bitOffset) throws IOException描述从接口ImageInputStream复制将位偏移设置为0到7之间的整数,包括0和7。 由getStreamPosition返回的流内的字节偏移量保持不变。 值为0表示最高有效位,值为7表示正在读取的字节的最低有效位。- Specified by:
-
setBitOffset在接口ImageInputStream - 参数
-
bitOffset- 所需的偏移量,为0和7之间的int,包括0和7。 - 异常
-
IOException- 如果发生I / O错误。 - 另请参见:
-
ImageInputStream.getBitOffset()
-
readBit
public int readBit() throws IOException说明从接口ImageInputStream复制从流中读取一位,并将其作为int返回,值为0或1。 位偏移前进一并减少模8。- Specified by:
-
readBit在接口ImageInputStream - 结果
-
一个
int,其值包含0或1。 - 异常
-
EOFException- 如果流在读取所有位之前到达结束。 -
IOException- 如果发生I / O错误。
-
readBits
public long readBits(int numBits) throws IOException描述从接口ImageInputStream复制从流读取一个bitstring,并将其作为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。- Specified by:
-
readBits在接口ImageInputStream - 参数
-
numBits- 要读取的位数,为0和64之间的int(含)。 - 结果
-
bitstring,作为一个
long最后一位读取存储在最低有效位。 - 异常
-
EOFException- 如果流在读取所有位之前到达结束。 -
IOException- 如果发生I / O错误。
-
length
public long length()
返回-1L以表示该流具有未知长度。 子类必须覆盖此方法以提供实际的长度信息。- Specified by:
-
length在接口ImageInputStream - 结果
- -1L表示未知长度。
-
skipBytes
public int skipBytes(int n) throws IOException通过致电seek(getStreamPosition() + n)前进当前流位置。位偏移重置为零。
- Specified by:
-
skipBytes在接口DataInput - Specified by:
-
skipBytes在接口ImageInputStream - 参数
-
n- 要查找的字节数。 - 结果
-
一个表示跳过的字节数的
int。 - 异常
-
IOException- 如果getStreamPosition在计算起始位置或结束位置时抛出一个IOException。
-
skipBytes
public long skipBytes(long n) throws IOException通过致电seek(getStreamPosition() + n)当前的流位置。位偏移重置为零。
- Specified by:
-
skipBytes在接口ImageInputStream - 参数
-
n- 要查找的字节数。 - 结果
-
一个
long表示跳过的字节数。 - 异常
-
IOException- 如果getStreamPosition在计算起始位置或结束位置时抛出一个IOException。
-
seek
public void seek(long pos) throws IOException描述从接口ImageInputStream复制将当前流位置设置为所需位置。 下一次读取将发生在此位置。 位偏移设置为0。一个
IndexOutOfBoundsException如果将被抛出pos比冲洗位置(如通过返回较小getflushedPosition)。寻求文件结尾是合法的; 一个
java.io.EOFException只有在执行读取时才会被抛出。- Specified by:
-
seek在接口ImageInputStream - 参数
-
pos- 一个包含所需文件指针位置的long。 - 异常
-
IOException- 如果发生任何其他I / O错误。
-
mark
public void mark()
将当前流位置推送到标记位置的堆栈。- Specified by:
-
mark在接口ImageInputStream
-
reset
public void reset() throws IOException从标记位置的堆栈中重置当前流字节和位位置。如果先前标记的位置位于流的废弃部分,则将抛出
IOException。- Specified by:
-
reset在接口ImageInputStream - 异常
-
IOException- 如果发生I / O错误。
-
flushBefore
public void flushBefore(long pos) throws IOException描述从接口ImageInputStream复制在指示的位置之前丢弃流的初始部分。 试图寻求在流的冲洗部分内的偏移将导致一个IndexOutOfBoundsException。调用
flushBefore可能允许实现此接口的类释放用于从流中存储数据的资源(如内存或磁盘空间)。- Specified by:
-
flushBefore在接口ImageInputStream - 参数
-
pos- 一个long其中包含可能被刷新的流前缀的长度。 - 异常
-
IOException- 如果发生I / O错误。
-
flush
public void flush() throws IOException说明从界面ImageInputStream复制在当前流位置之前丢弃流的初始位置。 相当于flushBefore(getStreamPosition())。- Specified by:
-
flush在接口ImageInputStream - 异常
-
IOException- 如果发生I / O错误。
-
getFlushedPosition
public long getFlushedPosition()
说明从接口ImageInputStream复制返回可以执行搜索的流中的最早位置。 返回的值将是传递到先前调用的所有值的最大值为flushBefore。- Specified by:
-
getFlushedPosition在接口ImageInputStream - 结果
-
最早寻求法定职位,作为
long。
-
isCached
public boolean isCached()
默认实现返回false。 如果子类缓存数据,子类应该重写。- Specified by:
-
isCached在接口ImageInputStream - 结果
-
true如果这个ImageInputStream缓存数据。 - 另请参见:
-
ImageInputStream.isCachedMemory(),ImageInputStream.isCachedFile()
-
isCachedMemory
public boolean isCachedMemory()
默认实现返回false。 子类应该在主存中缓存数据时重写。- Specified by:
-
isCachedMemory在接口ImageInputStream - 结果
-
true如果这个ImageInputStream缓存数据在主内存中。 - 另请参见:
-
ImageInputStream.isCached(),ImageInputStream.isCachedFile()
-
isCachedFile
public boolean isCachedFile()
默认实现返回false。 如果子类缓存临时文件中的数据,子类应该重写。- Specified by:
-
isCachedFile在接口ImageInputStream - 结果
-
true如果这个ImageInputStream缓存数据在临时文件中。 - 另请参见:
-
ImageInputStream.isCached(),ImageInputStream.isCachedMemory()
-
close
public void close() throws IOException描述从接口ImageInputStream复制关闭流。 尝试访问已关闭的流可能会导致IOException或错误的行为。 调用此方法可能允许实现此接口的类释放与流相关联的资源,如内存,磁盘空间或文件描述符。- Specified by:
-
close在接口AutoCloseable - Specified by:
-
close在接口Closeable - Specified by:
-
close在接口ImageInputStream - 异常
-
IOException- 如果发生I / O错误。
-
finalize
@Deprecated(since="9") protected void finalize() throws Throwable
已过时。finalize方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代的清理机制并删除覆盖的finalize方法。 当覆盖finalize方法时,其实现必须明确确保按照super.finalize()中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.finalize()的规范。在垃圾收集之前完成此对象。 调用close方法来关闭任何打开的输入源。 不应该从应用程序代码调用此方法。- 重写:
-
finalize在Object - 异常
-
Throwable- 如果在超类最终化期间发生错误。 - 另请参见:
-
WeakReference,PhantomReference
-
-