我有以下代码:
public class App {
public static void main(String[] args) {
System.out.println(App.class.getClassLoader().getResource("test.properties"));
System.out.println(App.class.getClassLoader().getResource("test.txt"));
System.out.println(App.class.getClassLoader().getResourceAsStream("test.properties"));
System.out.println(App.class.getClassLoader().getResourceAsStream("test.txt"));
System.out.println(App.class.getResourceAsStream("test.properties"));
System.out.println(App.class.getResourceAsStream("test.txt"));
}
}
此代码提供以下输出:
file:/C:/../test.properties
null
java.io.BufferedInputStream@18e2b22
null
java.io.BufferedInputStream@1cb1c5fa
null
为什么ClassLoader拒绝加载.txt文件?
更新:
我确定我的两个文件都在classpath中。 Classpath设置为/ src,两个文件都在此目录中。
答案 0 :(得分:2)
很可能你的txt文件不在类路径上
答案 1 :(得分:1)
您需要确保使用ClassLoader
加载的任何文件都包含在classpath
中。通常情况下,这样的资源存储在/src/main/resources
中,然后包含在类路径中。
如果您正在使用Eclipse,则可以右键单击资源管理器中的项目,然后转到Properties -> Java Build Path -> Source (Tab) -> Add Folder... (Button)
并在其中添加文件夹结构。