Package org.miaixz.bus.core.io.resource
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 TypeMethodDescriptiongetName()获取资源名,例如文件资源的资源名为文件名default BufferedReader获得Reader获得InputStreamgetUrl()获得解析后的URL,无对应URL的返回nulldefault boolean检查资源是否变更 一般用于文件类资源,检查文件是否被修改过。default byte[]读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取default String读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取default StringreadString(Charset charset) 读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取longsize()获取资源大小default voidwriteTo(OutputStream out) 将资源内容写出到流,不关闭输出流,但是关闭资源流
-
Method Details
-
getName
String getName()获取资源名,例如文件资源的资源名为文件名- Returns:
- 资源名
-
getUrl
URL getUrl()获得解析后的URL,无对应URL的返回null- Returns:
- 解析后的
URL
-
size
long size()获取资源大小- Returns:
- 资源大小
-
getStream
InputStream getStream()获得InputStream- Returns:
InputStream
-
isModified
default boolean isModified()检查资源是否变更 一般用于文件类资源,检查文件是否被修改过。- Returns:
- 是否变更
-
writeTo
将资源内容写出到流,不关闭输出流,但是关闭资源流- Parameters:
out- 输出流- Throws:
InternalException- IO异常
-
getReader
获得Reader- Parameters:
charset- 编码- Returns:
BufferedReader
-
readString
读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取- Parameters:
charset- 编码- Returns:
- 读取资源内容
- Throws:
InternalException- 包装IOException
-
readString
读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取- Returns:
- 读取资源内容
- Throws:
InternalException- 包装IOException
-
readBytes
读取资源内容,读取完毕后会关闭流 关闭流并不影响下一次读取- Returns:
- 读取资源内容
- Throws:
InternalException- 包装IOException
-