访问jar包内部资源文件的方法

如果在jar中需要访问jar包内部的某个资源文件,可以用class.getResourceAsStream(文件路径)获取文件内容。

假设文件路径是project/src/com/zh/resource, code如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;public class test {
    public static void main(String[] args) {
        StringBuffer fileStrBuffer = loadFile("/com/zh/resource/test.txt");
        if(fileStrBuffer!=null) {
            System.out.print(fileStrBuffer);
        }
    }
    
    /**
     * Load the specified  file.
     * 
     * @return The buffer to store file content.
     */
    private static StringBuffer loadFile(String file) {
        StringBuffer buffer = new StringBuffer();
        InputStream is = test.class.getResourceAsStream(file);
        BufferedReader reader;
        try {
            reader = new BufferedReader(new InputStreamReader(is, "utf-8"));
            String tempString = null;
            while ((tempString = reader.readLine()) != null) {
                buffer.append(tempString);
            }
        } catch (UnsupportedEncodingException e) {
            buffer = null;
        } catch (IOException e) {
            buffer = null;
        } finally {
            try {
                is.close();
            } catch (IOException e) {
            }
        }

        return buffer;
}
}

结果:

xxxxx{0}xxxxx{1}xxxxxxxx{2}xxxxxx

 

 

posted @ 2018-01-07 17:23  trypretty  阅读(1814)  评论(0编辑  收藏  举报