获取类路径下的资源(文件)

  在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 }

获取类路径下的资源(文件)_第1张图片

弄清路径的关系

获取类路径下的资源(文件)_第2张图片

 

Class:

 

//相对于当前.class文件所在目录!
用的时候注意路径

 

转载于:https://www.cnblogs.com/xjs1874704478/p/10771169.html

你可能感兴趣的:(获取类路径下的资源(文件))