1. 程式人生 > >Spring 讀取資源

Spring 讀取資源

如果 16px filename eat .... col resid exists 實現

  1. Spring 讀取資源
    1. 主要介紹3種方式(當然不止三種,但是這三種基本能應付大多需求)
      FileSystemResource:以文件的絕對路徑方式進行訪問
      ClassPathResourcee:以類路徑的方式訪問
      ServletContextResource:web應用根目錄的方式訪問
    2. 主要公用方法介紹(Resource接口下的)
      getFilename() : 獲得文件名稱
      contentLength() : 獲得文件大小
      createRelative(path) : 在資源的相對地址上創建新文件
      exists() : 是否存在
      getFile() : 獲得Java提供的File 對象
      getInputStream() :
      獲得文件的流
    3. 與常規的對應方法
      FileSystemResource 效果類似於Java中的File
      ClassPathResource 效果類似於this.getClass().getResource("/").getPath();
      ServletContextResource 效果類似於request.getServletContext().getRealPath("");

場景:

讀取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/.....這個樣子

Spring 讀取資源