我无法获取getResourceAsStream来查找文件。我把文件放在顶级目录,目标目录等等,并在前面尝试了“/”。每次返回null。
有什么建议吗?感谢。
public class T {
public static final void main(String[] args) {
InputStream propertiesIS = T.class.getClassLoader().getResourceAsStream("test.txt");
System.out.println("Break");
}
}
答案 0 :(得分:12)
将您的文件“test.txt”放入您的类的java文件所在的同一目录(相同的包)。然后使用
T.class.getResourceAsStream( "test.txt" );
这很有效,因为eclipse会自动将文件作为资源复制到类路径中。使用命令行时,必须手动执行此操作。
答案 1 :(得分:11)
您不需要将这些文件添加到同一目录中以使其工作。
当我创建一个新的Package and Source Folder来保存我的junit测试时,我遇到了这个症状。测试将失败,因为getResourceAsStream返回null。
以下是修复方法:
在Eclipse Project Explorer视图中右键单击该类(在我的示例中,是新的junit测试类)
构建路径 - >配置构建路径 - > Java构建路径 - >来源标签 - >添加文件夹
选择包含文件的文件夹。
答案 2 :(得分:4)
有时您需要明确告诉eclipse要从源文件夹复制到分发(类)文件夹的文件类型。
我有Eclipse SDK,版本:3.7.1,构建ID:M20110909-1335,Indigo并在此 我做了以下更改。
项目 - >属性 - > Java构建路径 - >来源(标签) - >包含(列表项) - >编辑(按钮)将* / .txt添加到现有的* / .java中。
答案 3 :(得分:0)
另外,请确保您的文件与偏好> Java>编译器>构建> OutputFolder>过滤资源的任何模式都不匹配。
例如,如果您在该字段中设置 * .txt ,则不会将test.txt提供给构建输出。
答案 4 :(得分:0)
将my / resources /文件夹放入我的/ bin /文件夹解决了这个问题。
答案 5 :(得分:0)
老问题,但我遇到了同样的问题,没有一个答案适合我(或者我不理解它们)。
在Eclipse中,刷新项目目录,使Eclipse知道已将新文件添加到资源中。为此,右键单击包浏览器视图中的项目(最顶层)目录,然后单击“刷新”。如果您从外部eclipse中编辑现有资源文件,则相同:刷新以使eclipse知道编辑。