InputStream in = TestPath.class.getClassLoader().getResourceAsStream("test.txt");
 String pa= TestPath.class.getClassLoader().getResource("").getPath(); ///E:/renpm/workspace/TestCode/web/WEB-INF/classes/  String pa2 = TestPath.class.getResource("").getPath(); ///E:/renpm/workspace/TestCode/web/WEB-INF/classes/com/sensky/all/test2/controller/path/
比如上面的三句话,TestPath是一个类,同过这个类能够获得到classloader,也同时能够获得classloader的路径,在加载文件的时候只要使用getResourceAsStream("test.txt");把与classloader在一个文件路径下的文件转化成输入流。这个输入流也是二进制的,也就是说只是利用classloader把文件以流的方式导入,而不是真正意义上的使用classloader来进行加载!!!

解决方案 »

  1.   

    java文件被编译后 资源文件"test.txt"会和class文件一起被放在target下的classes目录下,classloader从classes目录下加载class文件,内部原理是通过URL来找到class文件,既然资源文件盒class文件在同一根目录下,故而也可以通过相对路径在加载资源文件。
      

  2.   

    随便加载,你要这样想,它都能加载class文件,还有什么文本文件加载不了的呢