Interface Resource

All Known Implementing Classes:
BytesResource, CharSequenceResource, ClassPathResource, FileObjectResource, FileResource, HttpResource, InputStreamResource, JarResource, MultiFileResource, MultiResource, StringResource, UrlResource, VfsResource, WebAppResource

public interface Resource
资源接口定义

资源是数据表示的统称,我们可以将任意的数据封装为一个资源,然后读取其内容。

资源可以是文件、URL、ClassPath中的文件亦或者jar(zip)包中的文件。

提供资源接口的意义在于,我们可以使用一个方法接收任意类型的数据,从而处理数据, 无需专门针对File、InputStream等写多个重载方法,同时也为更好的扩展提供了可能。

使用非常简单,假设我们需要从classpath中读取一个xml,我们不用关心这个文件在目录中还是在jar中:

     Resource resource = new ClassPathResource("test.xml");
     String xmlStr = resource.readString();
 

同样,我们可以自己实现Resource接口,按照业务需要从任意位置读取数据,比如从数据库中。

Since:
Java 17+
Author:
Kimi Liu
  • Method Summary

    Modifier and Type
    Method
    Description
    获取资源名,例如文件资源的资源名为文件名
    getReader(Charset charset)
    获得Reader
    获得解析后的URL,无对应URL的返回null
    default boolean
    检查资源是否变更 一般用于文件类资源,检查文件是否被修改过。
    default byte[]
    读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取
    default String
    读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取
    default String
    读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取
    long
    获取资源大小
    default void
    将资源内容写出到流,不关闭输出流,但是关闭资源流
  • Method Details

    • getName

      String getName()
      获取资源名,例如文件资源的资源名为文件名
      Returns:
      资源名
    • getUrl

      URL getUrl()
      获得解析后的URL,无对应URL的返回null
      Returns:
      解析后的URL
    • size

      long size()
      获取资源大小
      Returns:
      资源大小
    • getStream

      InputStream getStream()
      Returns:
      InputStream
    • isModified

      default boolean isModified()
      检查资源是否变更 一般用于文件类资源,检查文件是否被修改过。
      Returns:
      是否变更
    • writeTo

      default void writeTo(OutputStream out) throws InternalException
      将资源内容写出到流,不关闭输出流,但是关闭资源流
      Parameters:
      out - 输出流
      Throws:
      InternalException - IO异常
    • getReader

      default BufferedReader getReader(Charset charset)
      获得Reader
      Parameters:
      charset - 编码
      Returns:
      BufferedReader
    • readString

      default String readString(Charset charset) throws InternalException
      读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取
      Parameters:
      charset - 编码
      Returns:
      读取资源内容
      Throws:
      InternalException - 包装IOException
    • readString

      default String readString() throws InternalException
      读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取
      Returns:
      读取资源内容
      Throws:
      InternalException - 包装IOException
    • readBytes

      default byte[] readBytes() throws InternalException
      读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取
      Returns:
      读取资源内容
      Throws:
      InternalException - 包装IOException