读取jar包内的文件

背景:封装了一个工具包,在工具包内使用File方式读取文件内容

 {
 URL resource = GB2260.class.getResource("/gb2260/data.json");
   String json = FileUtils.readFileToString(new File(resource.getPath()));
}

在当前项目中可执行
当作为其他项目依赖使用时读取该资源文件则会报错
如图所示


image.png

所以应当改用流的方式读取文件内容

 {
   InputStream is = GB2260.class.getResourceAsStream("/gb2260/data.json");
   String json = inputStream2String(is);
}
 private static String inputStream2String(InputStream in) throws IOException {
        StringBuffer out = new StringBuffer();
        byte[] b = new byte[4096];
        for (int n; (n = in.read(b)) != -1; ) {
            out.append(new String(b, 0, n));
        }
        return out.toString();
    }

你可能感兴趣的:(读取jar包内的文件)