在MyEclipse或者Eclipse中在src下创建的.java文件和其他文件会在WebRoot/WEB-INF/classes目录下存在(.class文件和其他原封不动的文件)。
即在类路径下创建东西就是在src下创建。
获取类路径下资源
获取类路径资源,类路径对一个JavaWeb项目而言,就是/WEB-INF/classes和//WEB-INF/lib每个jar包!
ClassLoader:当a.txt在src下,即类路径下
1)用的是ClassLoader
//当a.txt在src下,即类路径下 public class CServlet extends HttpServlet{ public void doGet extends(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{ /* * 1.得到ClassLoader * >先得到Class,再得到ClassLoader * 2.调用其getResourceAsStream(),得到一个InputStream * */ // 相对于/classes // ClassLoader classLoader = this.getClass().getClassLoader(); // InputStream in = classLoader.getResourceAsStream("a.txt"); /*byte[] b=new byte[100]; int n=0; while((n=in.read(b))!=-1){//一次判断是否为负数 //把字节转换成String String str = new String(b,0,n); System.out.println(str);//一次输出 } in.close();//关闭流 */ //用一个工具包comment-io里面的IOUtils.toString(in) // String str = IOUtils.toString(in);//读取数据流返回字符串 // System.out.println(str); } }
2)使用Class
1 //简写 2 doGet(){ 3 //相对于当前.class文件所在目录! 4 Class c=this.getClass(); 5 InputStream in = c.getResourceAsStream("../../a.txt");//路径的使用 6 String str = IOUtils.toString(in); 7 System.out.println(str); 8 9 }
弄清路径的关系
Class:
//相对于当前.class文件所在目录!
用的时候注意路径