springboot-項目獲取resources下文件


背景:

  項目的resources 目錄下放置了一份txt文件,需求是想獲取到這份文件轉成File對象,調用文件上傳的接口進行文件上傳操作。

  

 

實現:

  1、使用 ResourceUtils:本地ok,測試環境無效

File file = ResourceUtils.getFile("classpath:whitelist/微樂分新白名單2月推薦-前100.txt");

  注意:ResourceUtils.getFile() 方法可以獲取到resources 下的文件,本地沒問題 但是發布到 測試環境(linux系統下)沒用。

  

  2、ClassPathResource,用於打成jar包后獲取文件的方法:本地&測試環境都ok

ClassPathResource classPathResource = new ClassPathResource("whitelist/微樂分新白名單2月推薦-前100.txt");
InputStream inputStream = classPathResource.getInputStream();
File file = asFile(inputStream);//手動轉換:InputStream To File

  

  備注:不可以直接通過classPathResource.getFile()得到File,會失敗,暫時不清楚為什么,先解決問題,方式為由classPathResource獲取到InputStream,然后再將InputStream轉成File,轉換的方式如下:

   /**
     * InputStream To File
     *
     * @param in InputStream
     *
     * @return File
     *
     * */
    public static File asFile(InputStream in) throws IOException {
        File tempFile = File.createTempFile("whitelist", ".tmp");
        tempFile.deleteOnExit();
        FileOutputStream out = new FileOutputStream(tempFile);
        IOUtils.copy(in, out);
        return tempFile;
    }

 

參考文章:

springboot-項目獲取resources下文件的方法
 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM