java.lang.Object javax.imageio.spi.IIOServiceProvider javax.imageio.spi.ImageInputStreamSpi
public abstract class ImageInputStreamSpi
用于 ImageInputStream
的服务提供者接口 (SPI)。有关服务提供者接口的更多信息,请参见 IIORegistry
类的类注释。
此接口允许由 ImageInputStream
的实例“包装”任意对象。例如,一个特定的 ImageInputStreamSpi
可能允许使用一般的 InputStream
充当输入源;另一个可能使用来自 URL
的输入。
通过将 ImageInputStream
的创建作为一个可插入的服务,实现了在不更改 API 的情况下对后续的输入源的处理。另外,应用程序可以透明的方式安装和使用 ImageInputStream
的高性能实现(例如,用于特定平台的本地实现)。
IIORegistry
,
ImageInputStream
字段摘要 | |
---|---|
protected Class<?> |
inputClass 指示供 createInputStreamInstance 方法使用的合法对象类型的 Class 对象。 |
从类 javax.imageio.spi.IIOServiceProvider 继承的字段 |
---|
vendorName, version |
构造方法摘要 | |
---|---|
protected |
ImageInputStreamSpi() 构造一个空的 ImageInputStreamSpi 。 |
|
ImageInputStreamSpi(String vendorName, String version, Class<?> inputClass) 用给定的一组值构造 ImageInputStreamSpi 。 |
方法摘要 | |
---|---|
boolean |
canUseCacheFile() 如果与此服务提供者关联的 ImageInputStream 实现可选择利用缓存文件改善性能和/或内存占用,则返回 true 。 |
ImageInputStream |
createInputStreamInstance(Object input) 返回与此服务提供者关联的 ImageInputStream 实现的实例。 |
abstract ImageInputStream |
createInputStreamInstance(Object input, boolean useCache, File cacheDir) 返回与此服务提供者关联的 ImageInputStream 实现的实例。 |
Class<?> |
getInputClass() 返回表示必须由输入源实现(以便使用 createInputStreamInstance 方法在 ImageInputStream 中“包装”)的类或接口的类型的 Class 对象。 |
boolean |
needsCacheFile() 如果与此服务提供者关联的 ImageInputStream 实现要求使用缓存 File ,则返回 true 。 |
从类 javax.imageio.spi.IIOServiceProvider 继承的方法 |
---|
getDescription, getVendorName, getVersion, onDeregistration, onRegistration |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected Class<?> inputClass
createInputStreamInstance
方法使用的合法对象类型的
Class
对象。
构造方法详细信息 |
---|
protected ImageInputStreamSpi()
ImageInputStreamSpi
。为提供所有方法的可用版本,由子类负责初始化实例变量和/或重写方法实现。
public ImageInputStreamSpi(String vendorName, String version, Class<?> inputClass)
ImageInputStreamSpi
。
vendorName
- 供应商名称。
version
- 版本标识符。
inputClass
- 指示供
createInputStreamInstance
方法使用的合法对象类型的
Class
对象。
IllegalArgumentException
- 如果
vendorName
为
null
。
IllegalArgumentException
- 如果
version
为
null
。
方法详细信息 |
---|
public Class<?> getInputClass()
createInputStreamInstance
方法在
ImageInputStream
中“包装”)的类或接口的类型的
Class
对象。
通常的返回值可能包含 InputStream.class
或 URL.class
,但可能使用任何类。
Class
变量。
createInputStreamInstance(Object, boolean, File)
public boolean canUseCacheFile()
ImageInputStream
实现可选择利用缓存文件改善性能和/或内存占用,则返回
true
。如果为
false
,则忽略
createInputStreamInstance
的
useCache
参数的值。
默认实现返回 false
。
true
。
public boolean needsCacheFile()
ImageInputStream
实现要求使用缓存
File
,则返回
true
。如果为
true
,将忽略
createInputStreamInstance
的
useCache
变量的值。
默认实现返回 false
。
true
。
public abstract ImageInputStream createInputStreamInstance(Object input, boolean useCache, File cacheDir) throws IOException
ImageInputStream
实现的实例。如果使用缓存文件为可选项,则将参考
useCache
参数。在要求使用缓存,或缓存不适用时,将忽略
useCache
的值。
input
- 一个由
getInputClass
返回的类类型的对象。
useCache
- 在可选的情况下指示是否应使用缓存文件的
boolean
。
cacheDir
- 指示创建缓存文件的位置的
File
,或者为
null
,以指示使用系统目录。
ImageInputStream
实例。
IllegalArgumentException
- 如果
input
不是一个正确的类的实例,或者为
null
。
IllegalArgumentException
- 如果需要缓存文件但
cacheDir
为非
null
并且也不是一个目录。
IOException
- 如果需要缓存文件但无法创建。
getInputClass()
,
canUseCacheFile()
,
needsCacheFile()
public ImageInputStream createInputStreamInstance(Object input) throws IOException
ImageInputStream
实现的实例。如果需要,将在系统相应的默认临时文件目录中创建缓存文件。
input
- 一个由
getInputClass
返回的类类型的对象。
ImageInputStream
实例。
IllegalArgumentException
- 如果
input
不是一个正确的类的实例,或者为
null
。
IOException
- 如果需要缓存文件但无法创建。
getInputClass()