【发布时间】:2013-03-22 20:48:07
【问题描述】:
我的项目结构如下:
/src/main/java/
/src/main/resources/
/src/test/java/
/src/test/resources/
我在/src/test/resources/test.csv 中有一个文件,我想从/src/test/java/MyTest.java 的单元测试中加载该文件
我有这段代码不起作用。它抱怨“没有这样的文件或目录”。
BufferedReader br = new BufferedReader (new FileReader(test.csv))
我也试过了
InputStream is = (InputStream) MyTest.class.getResourcesAsStream(test.csv))
这也行不通。它返回null。我正在使用 Maven 构建我的项目。
【问题讨论】:
-
不工作怎么办?你的错误是什么?
-
试试这个
this.getClass().getResource("/test.csv") -
@SRy 它起作用了(因为这将给出绝对路径 url 作为回报)但是当我制作 jar 文件时它不起作用,因为它在 jar 中并且绝对路径变得无效,有没有办法播放与相对路径本身
-
@SRy,从现在到 2013 年之间的某个时间,这似乎已得到修复。我今天能够在没有初始
/的情况下加载根资源。不过,我是getClass().getClassLoader().getResourceAsStream(filename)...也许这就是区别?