Java中的Class对象可通过两种方式加载输入流。
1. this.getClass().getResourceAsStream(fileName);
这种方式以当前类所在package为根目录来寻找文件。
2. this.getClass().getClassLoader().getResourceAsStream(fileName);
这种方式从当前classpath中寻找文件。
比如有以下目录结构
+src
+test1
-Test1.java
-1.txt
+test2
-Test2.java
-2.txt
+classpath
-config.properties
其中classpath目录为classpath的根目录
在Test1.java中,可以通过如下方式访问1.txt和2.txt
this.getClass().getResourceAsStream("1.txt");
this.getClass().getResourceAsStream("../test2/1.txt");
访问config.properties
this.getClass().getClassLoader().getResourceAsStream("config.properties");
另外,如果想获得File对象,可以分别使用
this.getClass().getResource(fileName).getFile();
this.getClass().getClassLoader().getResource(fileName).getFile();