Spring 讀取資源
阿新 • • 發佈:2017-09-11
如果 16px filename eat .... col resid exists 實現
- 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} ifthe 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/.....這個樣子
Spring 讀取資源