从 jar 中读取 tsv 文件

Read tsv file from jar

我在项目的 class 路径中有一个 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)

可能是什么问题?

切勿使用 getResource 获取对与 java 类 打包的文件的引用,因为该资源可能在运行时位于 JAR 或 WAR 文件中。

改为使用以下内容:

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