如果想要进行磁盘文件的读取操作,首先想到的一定是java.io包中提供的一系列类,还可以继续深入的想到ImputStream,OutputStream,Scanner,PrintStream,BufferedReader等核心的处理操作类.但是现在有如下几个问题,
这几个类的互相操作难度太高,很多人实际上对于IO的领悟并不是很彻底,
IO支持的读取有限且复杂:
|-读取jar包里面的文件呢?
|-读取不同资源文件的时候操作不统一,例如:读取文件,读取网络;
所以在整个Spring设计过程之中充分的考虑到了IO操作的种种操作问题,那么提供了一套新的资源访问处理的操作支持,而整个操作的关键就在于:org.springframework.core.io Resource,而这个接口就表示所有的可用资源读取,在此接口里面定义有如下常用方法
NO | 方法名称 | 类型 | 描述 |
1 | public long contentLength() throws IOException | 普通 | 取得资源的数据长度 |
2 | public boolean exists() | 普通 | 判断资源是否存在 |
3 | public File getFile() throws IOException | 普通 | 取得资源对应的文件信息 |
4 | public URI getURI() throws IOException | 普通 | 取得资源的完整网络路径 |
5 | public boolean isOpen() | 普通 | 判断资源是否打开 |
6 | public long lastModified() throws IOException | 普通 | 最后一次修改日期 |
7 | public Resource createRelative(String relativePath) throws IOException | 普通 | 创建一个操作的资源 |
Resource本身之属于一个子接口,它有一个对应的父接口org.springframework.core.io.InputStreamResource,在这个接口里面也定义的有资源操作的方法
NO | 方法名称 | 类型 | 描述 |
1 | public InputStream getInputStream() throws IOException,IllegalStateException | 普通 | 取得资源的输入流 |
2 | |||
3 | |||
4 |
Resource本身就是一个接口,那么如果想要使用这个操作接口,需要找到它的子类:ByteArrayResource(内存读取),ClassPathResource(CLASSPATH读取),FileSystemResource(文件读取),