在jar存档中读取文件

时间:2015-06-07 13:01:32

标签: jar executable-jar

在我的maven项目中,我在src / main / resources / data文件夹中有一些csv文件,我正在阅读如下:

private static final String FILE_PATH_ROOT= "src/main/resources/data/";

CSVReader reader = new CSVReader(new FileReader(FILE_PATH_ROOT+ 
fileName),   SEPERATOR_CHARACTER);

当我从eclipse运行我的程序时,这种方法有效。但是当我构建一个jar并执行它时,我得到的消息是系统无法找到指定的数据。在jar文件中,文件只是在主jar存档中的数据文件夹中。如何解决此问题以便正确读取文件?

1 个答案:

答案 0 :(得分:0)

如果文件在Jar文件内(或在类路径中)结束,则可能必须使用ClassLoader.getResourceAsStream()方法https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)

从InputStream创建一个InputStreamReader,然后读取内容。

https://docs.oracle.com/javase/7/docs/api/java/io/InputStreamReader.html