public abstract class ImageInputStreamSpi extends IIOServiceProvider
ImageInputStream
秒。
有关服务提供商界面的更多信息,请参阅IIORegistry
类的类注释。
该接口允许任意对象由ImageInputStream的ImageInputStream
“包装”。 例如,特定的ImageInputStreamSpi
可能允许将通用InputStream
用作输入源; 另一个可能会从URL
输入。
通过将创建ImageInputStream
作为可插拔服务,可以在不改变API的情况下处理未来的输入源。 此外,ImageInputStream的ImageInputStream
(例如,特定平台的本机实现)可以由应用程序透明地安装和使用。
IIORegistry
, ImageInputStream
Modifier and Type | Field and Description |
---|---|
protected 类<?> |
inputClass
一个
类 对象,指示
createInputStreamInstance 方法使用的合法对象类型。
|
vendorName, version
Modifier | Constructor and Description |
---|---|
protected |
ImageInputStreamSpi()
构造空白
ImageInputStreamSpi 。
|
|
ImageInputStreamSpi(String vendorName, String version, 类<?> inputClass)
构造具有给定值的
ImageInputStreamSpi 。
|
Modifier and Type | Method and Description |
---|---|
boolean |
canUseCacheFile()
返回
true 如果
ImageInputStream 与此服务提供者关联实现可选择使用了改进的性能和/或内存占用一个缓存文件。
|
ImageInputStream |
createInputStreamInstance(Object input)
返回与此服务提供商
ImageInputStream ImageInputStream实现的实例。
|
abstract ImageInputStream |
createInputStreamInstance(Object input, boolean useCache, File cacheDir)
返回与此服务提供商
ImageInputStream ImageInputStream实现的实例。
|
类<?> |
getInputClass()
返回一个表示要由输入源实现的类或接口类型的
类 对象,以便通过
createInputStreamInstance 方法“包装”在
ImageInputStream 中。
|
boolean |
needsCacheFile()
返回
true 如果
ImageInputStream 与此服务提供相关的实施需要使用一个缓存
File 。
|
getDescription, getVendorName, getVersion, onDeregistration, onRegistration
protected 类<?> inputClass
类
对象,指示
createInputStreamInstance
方法使用的合法对象类型。
protected ImageInputStreamSpi()
ImageInputStreamSpi
。
初始化实例变量和/或覆盖方法实现的子类是为了提供所有方法的工作版本。
public ImageInputStreamSpi(String vendorName, String version, 类<?> inputClass)
ImageInputStreamSpi
。
vendorName
- 供应商名称。
version
- 版本标识符。
inputClass
- 一个
类
对象,指示
createInputStreamInstance
方法使用的合法对象类型。
IllegalArgumentException
- 如果
vendorName
是
null
。
IllegalArgumentException
- 如果
version
是
null
。
public 类<?> getInputClass()
类
对象,表示必须由输入源实现的类或接口类型,以便通过createInputStreamInstance
方法“包装”在ImageInputStream
中。
典型的返回值可能包括InputStream.class
或URL.class
,但可以使用任何类。
类
变量。
createInputStreamInstance(Object, boolean, File)
public boolean canUseCacheFile()
true
如果ImageInputStream
与此服务提供者关联实现可选择使用了改进的性能和/或内存占用一个缓存文件。
如果false
,该值useCache
参数createInputStreamInstance
将被忽略。
默认实现返回false
。
true
如果缓存文件可以由此服务提供商创建的输入流使用。
public boolean needsCacheFile()
true
如果ImageInputStream
与此服务提供相关的实施需要使用一个缓存File
。
如果true
,该值useCache
参数createInputStreamInstance
将被忽略。
默认实现返回false
。
true
如果由该服务提供商创建的输入流需要缓存文件。
public abstract ImageInputStream createInputStreamInstance(Object input, boolean useCache, File cacheDir) throws IOException
ImageInputStream
ImageInputStream实现的实例。
如果使用缓存文件是可选的,则将useCache
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
ImageInputStream实现的实例。
如果需要,系统相关的默认临时文件目录中将创建缓存文件。
input
-通过返回的类类型的对象
getInputClass
。
ImageInputStream
例子。
IllegalArgumentException
- 如果
input
不是正确类的实例,或者是
null
。
IOException
- 如果需要缓存文件但无法创建。
getInputClass()