javax.imageio.spi

接口
java.lang.Object
  继承者 javax.imageio.spi.IIOServiceProvider
      继承者 javax.imageio.spi.ImageInputStreamSpi
所有已实现的接口:
RegisterableService

public abstract class ImageInputStreamSpi
     
extends IIOServiceProvider

用于 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
 

字段详细信息

inputClass

protected Class<?> inputClass
指示供 createInputStreamInstance 方法使用的合法对象类型的 Class 对象。

构造方法详细信息

ImageInputStreamSpi

protected ImageInputStreamSpi()
构造一个空的 ImageInputStreamSpi。为提供所有方法的可用版本,由子类负责初始化实例变量和/或重写方法实现。


ImageInputStreamSpi

public ImageInputStreamSpi(String vendorName,
                           String version,
                           Class<?> inputClass)
用给定的一组值构造 ImageInputStreamSpi

参数:
vendorName - 供应商名称。
version - 版本标识符。
inputClass - 指示供 createInputStreamInstance 方法使用的合法对象类型的 Class 对象。
抛出:
IllegalArgumentException - 如果 vendorNamenull
IllegalArgumentException - 如果 versionnull
方法详细信息

getInputClass

public Class<?> getInputClass()
返回表示必须由输入源实现(以便使用 createInputStreamInstance 方法在 ImageInputStream 中“包装”)的类或接口的类型的 Class 对象。

通常的返回值可能包含 InputStream.classURL.class,但可能使用任何类。

返回:
一个 Class 变量。
另请参见:
createInputStreamInstance(Object, boolean, File)

canUseCacheFile

public boolean canUseCacheFile()
如果与此服务提供者关联的 ImageInputStream 实现可选择利用缓存文件改善性能和/或内存占用,则返回 true。如果为 false,则忽略 createInputStreamInstanceuseCache 参数的值。

默认实现返回 false

返回:
如果此服务提供者创建的输入流有可使用的缓存文件,则返回 true

needsCacheFile

public boolean needsCacheFile()
如果与此服务提供者关联的 ImageInputStream 实现要求使用缓存 File,则返回 true。如果为 true,将忽略 createInputStreamInstanceuseCache 变量的值。

默认实现返回 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()