Module  java.desktop
软件包  javax.imageio.spi

Class ImageInputStreamSpi

  • All Implemented Interfaces:
    RegisterableService


    public abstract class ImageInputStreamSpi
    extends IIOServiceProvider
    ImageInputStream的服务提供商接口(SPI)。 有关服务提供商界面的更多信息,请参阅IIORegistry类的类注释。

    该接口允许任意对象由ImageInputStream的实例“包装”。 例如,特定的ImageInputStreamSpi可能允许使用通用的InputStream作为输入源; 另一个可能会从URL输入。

    通过将创建ImageInputStream作为可插拔服务,可以在不改变API的情况下处理未来的输入源。 此外, ImageInputStream的高性能实现(例如,特定平台的本机实现)可以由应用程序透明地安装和使用。

    另请参见:
    IIORegistryImageInputStream
    • 字段详细信息

      • 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 - 如果 vendorNamenull
        IllegalArgumentException - 如果 versionnull
    • 方法详细信息

      • getInputClass

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

        典型的返回值可能包括InputStream.classURL.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()