从jar读取tsv文件

时间:2016-02-01 12:06:51

标签: java classpath

我在项目的类路径中有一个tsv文件,我尝试使用getResource()方法读取。我的代码是这样的:

    File file=new File(ClassName.class.getResource("/folder/myfile.tsv").getFile());
    CSVReader reader=new CSVReader(new FileReader(file),'\t');

因此,当我运行代码时,我收到此消息:

java.io.FileNotFoundException: \folder\myfile.tsv (The system cannot find the path specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

永远不要使用getResource来获取对java类打包的文件的引用,因为资源可能在运行时位于JAR或WAR文件中。

请改用以下内容:

InputStream is = ClassName.class.getResourceAsStream("/folder/myfile.tsv");
CSVReader reader=new CSVReader(is, '\t', StandardCharsets.UTF_8);