从 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);
我在项目的 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);