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