public interface Resource
资源是数据表示的统称,我们可以将任意的数据封装为一个资源,然后读取其内容。
资源可以是文件、URL、ClassPath中的文件亦或者jar(zip)包中的文件。
提供资源接口的意义在于,我们可以使用一个方法接收任意类型的数据,从而处理数据, 无需专门针对File、InputStream等写多个重载方法,同时也为更好的扩展提供了可能。
使用非常简单,假设我们需要从classpath中读取一个xml,我们不用关心这个文件在目录中还是在jar中:
Resource resource = new ClassPathResource("test.xml"); String xmlStr = resource.readUtf8Str();
同样,我们可以自己实现Resource接口,按照业务需要从任意位置读取数据,比如从数据库中。
Modifier and Type | Method and Description |
---|---|
String |
getName()
获取资源名,例如文件资源的资源名为文件名
|
default BufferedReader |
getReader(Charset charset)
获得Reader
|
InputStream |
getStream()
获得
InputStream |
URL |
getUrl()
获得解析后的
URL ,无对应URL的返回null |
default boolean |
isModified()
检查资源是否变更
一般用于文件类资源,检查文件是否被修改过。 |
default byte[] |
readBytes()
读取资源内容,读取完毕后会关闭流
关闭流并不影响下一次读取 |
default String |
readStr(Charset charset)
读取资源内容,读取完毕后会关闭流
关闭流并不影响下一次读取 |
default String |
readUtf8Str()
读取资源内容,读取完毕后会关闭流
关闭流并不影响下一次读取 |
default void |
writeTo(OutputStream out)
将资源内容写出到流,不关闭输出流,但是关闭资源流
|
String getName()
InputStream getStream()
InputStream
InputStream
default boolean isModified()
default void writeTo(OutputStream out) throws IORuntimeException
out
- 输出流IORuntimeException
- IO异常default BufferedReader getReader(Charset charset)
charset
- 编码BufferedReader
default String readStr(Charset charset) throws IORuntimeException
charset
- 编码IORuntimeException
- 包装IOException
default String readUtf8Str() throws IORuntimeException
IORuntimeException
- 包装IOExceptiondefault byte[] readBytes() throws IORuntimeException
IORuntimeException
- 包装IOExceptionCopyright © 2024. All rights reserved.