- java.lang.Object
-
- javax.imageio.stream.ImageInputStreamImpl
-
- javax.imageio.stream.FileCacheImageInputStream
-
- All Implemented Interfaces:
-
Closeable,DataInput,AutoCloseable,ImageInputStream
public class FileCacheImageInputStream extends ImageInputStreamImpl
一个ImageInputStream的实现,从常规的InputStream得到它的输入。 一个文件用于缓存先前读取的数据。
-
-
Field Summary
-
Fields inherited from class javax.imageio.stream.ImageInputStreamImpl
bitOffset, byteOrder, flushedPos, streamPos
-
-
构造方法摘要
构造方法 Constructor 描述 FileCacheImageInputStream(InputStream stream, File cacheDir)构造一个FileCacheImageInputStream,将从给定的InputStream读取。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 voidclose()关闭此FileCacheImageInputStream,关闭并删除缓存文件。protected voidfinalize()已过时。finalize方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代的清理机制,并删除覆盖finalize方法。 当覆盖finalize方法时,其实现必须明确确保按照super.finalize()中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.finalize()的规范。booleanisCached()返回true因为这个ImageInputStream缓存数据,以便向后ImageInputStream。booleanisCachedFile()返回true因为这个ImageInputStream维护一个文件缓存。booleanisCachedMemory()返回false因为这个ImageInputStream没有维护主内存缓存。intread()从流中读取一个字节,并将其作为int返回0到255之间。intread(byte[] b, int off, int len)从流中读取最多len个字节,并将其存储到b,索引号为off。-
Methods inherited from class javax.imageio.stream.ImageInputStreamImpl
checkClosed, flush, flushBefore, getBitOffset, getByteOrder, getFlushedPosition, getStreamPosition, length, mark, read, readBit, readBits, readBoolean, readByte, readBytes, readChar, readDouble, readFloat, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readFully, readInt, readLine, readLong, readShort, readUnsignedByte, readUnsignedInt, readUnsignedShort, readUTF, reset, seek, setBitOffset, setByteOrder, skipBytes, skipBytes
-
-
-
-
构造方法详细信息
-
FileCacheImageInputStream
public FileCacheImageInputStream(InputStream stream, File cacheDir) throws IOException
构造一个FileCacheImageInputStream,它将从给定的InputStream读取。临时文件用作缓存。 如果
cacheDir是非null并且是一个目录,该文件将在那里创建。 如果是null,将使用系统相关的默认临时文件目录(有关详细信息,请参阅File.createTempFile的文档)。- 参数
-
stream- 要阅读的InputStream。 -
cacheDir- 一个File指示应该创建缓存文件的位置,或null使用系统目录。 - 异常
-
IllegalArgumentException- 如果stream是null。 -
IllegalArgumentException- 如果cacheDir是非null但不是一个目录。 -
IOException- 如果无法创建缓存文件。
-
-
方法详细信息
-
read
public int read() throws IOException描述从类别复制ImageInputStreamImpl从流中读取一个字节,并将其作为int返回0到255之间。如果达到EOF,则返回-1。子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
在发生读取之前,流内的位偏移必须重置为零。
- Specified by:
-
read在接口ImageInputStream - Specified by:
-
read在ImageInputStreamImpl - 结果
-
流中下一个字节的值,如果达到EOF,
-1。 - 异常
-
IOException- 如果流已关闭。
-
read
public int read(byte[] b, int off, int len) throws IOException描述从类复制:ImageInputStreamImpl读取到len从流字节,并将其存储到b开始于索引off。 如果没有字节可以读取,因为已经到达流的末尾,则返回-1。在发生读取之前,流内的位偏移必须重置为零。
子类必须为此方法提供一个实现。 子类实现应该在退出之前更新流位置。
- Specified by:
-
read在接口ImageInputStream - Specified by:
-
read在ImageInputStreamImpl - 参数
-
b- 要写入的字节数组。 -
off- 起始位置在b内写。 -
len- 要读取的最大字节数。 - 结果
-
实际读取的字节数,或
-1表示EOF。 - 异常
-
IOException- 如果发生I / O错误。
-
isCached
public boolean isCached()
返回true因为这个ImageInputStream缓存数据,以便向后ImageInputStream。- Specified by:
-
isCached在接口ImageInputStream - 重写:
-
isCached在ImageInputStreamImpl - 结果
-
true。 - 另请参见:
-
isCachedMemory(),isCachedFile()
-
isCachedFile
public boolean isCachedFile()
返回true因为这个ImageInputStream维护一个文件缓存。- Specified by:
-
isCachedFile接口ImageInputStream - 重写:
-
isCachedFile在ImageInputStreamImpl - 结果
-
true。 - 另请参见:
-
isCached(),isCachedMemory()
-
isCachedMemory
public boolean isCachedMemory()
返回false因为这个ImageInputStream不维护主内存缓存。- Specified by:
-
isCachedMemory在接口ImageInputStream - 重写:
-
isCachedMemory在ImageInputStreamImpl - 结果
-
false。 - 另请参见:
-
isCached(),isCachedFile()
-
close
public void close() throws IOException关闭此FileCacheImageInputStream,关闭并删除缓存文件。 源InputStream未关闭。- Specified by:
-
close在接口AutoCloseable - Specified by:
-
close在接口Closeable - Specified by:
-
close在接口ImageInputStream - 重写:
-
close在ImageInputStreamImpl - 异常
-
IOException- 如果发生错误。
-
finalize
@Deprecated(since="9") protected void finalize() throws Throwable
已过时。finalize方法已被弃用。 为了执行清理,覆盖finalize子类应被修改为使用替代的清理机制,并删除覆盖的finalize方法。 当覆盖finalize方法时,其实现必须明确确保按照super.finalize()中所述调用super.finalize() 。 有关迁移选项的更多信息,请参阅Object.finalize()的规范。在垃圾收集之前完成此对象。 调用close方法来关闭任何打开的输入源。 不应该从应用程序代码调用此方法。- 重写:
-
finalize在ImageInputStreamImpl - 异常
-
Throwable- 如果在超类最终化期间发生错误。 - 另请参见:
-
WeakReference,PhantomReference
-
-