java 讀取jar包內文件方法


 

我們有時候在idea環境下讀取工程內文件用className.class.getResourceAsStream() 是可以成功的,

但是打成jar包發布后就讀取不到,報錯:java.io.FileNotFoundException: file:/app.jar!/BOOT-INF/classes!

所以我們需要改變讀取文件的方式,讀取jar包內容只能是流的方式。

案例如下:

/**
     * 讀取文件信息
     * @param name 文件路徑
     * @return java.lang.String 返回參數說明
     * @exception/throws
    */
    public String readFile2Str(String name){
        InputStream inputStream = null;
        BufferedReader br = null;
        StringBuilder sb = new StringBuilder();
        try {
            inputStream = this.getClass().getResourceAsStream("/TASK.md");
            br = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while((line = br.readLine()) != null){
                sb.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(inputStream != null){
                try{
                    inputStream.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
            if(br != null){
                try{
                    br.close();
                }catch (IOException e){
                    e.printStackTrace();
                }
            }
        }
        return sb.toString();
    }

 

參考地址:http://zuidaima.com/code/file/1758442014901248.htm?dir=/InputStreamFile/src/com/test/InputStreamFile.java

參考地址:https://segmentfault.com/a/1190000000423350

參考地址:https://www.cnblogs.com/tinaluo/p/12357381.html

參考地址:https://www.cnblogs.com/yadongliang/p/7920053.html


免責聲明!

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



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