1

我有以下代码:

 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 文件?

更新:

我确定我的两个文件都在类路径中。类路径设置为 /src 并且两个文件都在此目录中。

4

2 回答 2

2

很可能您的 txt 文件不在类路径中

于 2012-04-17T09:49:34.543 回答
1

您需要确保您想要加载的任何文件ClassLoader都包含在您的classpath. 通常,像这样的资源存储在/src/main/resources其中,然后包含在类路径中。

如果您使用的是 Eclipse,您可以在资源管理器中右键单击项目,然后在其中Properties -> Java Build Path -> Source (Tab) -> Add Folder... (Button)添加文件夹结构。

于 2012-04-17T09:54:24.170 回答