- Spring 读取资源
- 主要介绍3种方式(当然不止三种,但是这三种基本能应付大多需求)
FileSystemResource:以文件的绝对路径方式进行访问
ClassPathResourcee:以类路径的方式访问
ServletContextResource:web应用根目录的方式访问 - 主要公用方法介绍(Resource接口下的)
getFilename() : 获得文件名称
contentLength() : 获得文件大小
createRelative(path) : 在资源的相对地址上创建新文件
exists() : 是否存在
getFile() : 获得Java提供的File 对象
getInputStream() : 获得文件的流 - 与常规的对应方法
FileSystemResource 效果类似于Java中的File
ClassPathResource 效果类似于this.getClass().getResource("/").getPath();
ServletContextResource 效果类似于request.getServletContext().getRealPath("");
- 主要介绍3种方式(当然不止三种,但是这三种基本能应付大多需求)
场景:
读取Resource下export文件夹中的xml配置文件
1.ClassPathResource
Resource resource = new ClassPathResource("export/config.xml"); File file = resource.getFile(); System.out.println("对应的以往的实现方式:"+this.getClass().getResource("/").getPath());
2.FileSystemResource
FileSystemResource res1=new FileSystemResource("D:/abc.txt"); File f = res1.getFile(); //转换成Java的File对象
ClassPathResource类的注释:
* Supports resolution as {@code java.io.File} if the class path * resource resides in the file system, but not for resources in a JAR. * Always supports resolution as URL.
Spring 读取资源文件后如果使用getFile()方法获取的话要保证资源文件是在文件系统中(能正确读取出文件路径)
如果运行的Jar包读出的路径是:app.jar!/BOOT-INF!/classes/.....这个样子
时间: 2024-10-13 10:38:22