JavaWeb——相对路径和绝对路径

介绍

  绝对路径:以盘符为开始的路径

  相对路径:以某一个基路径为开头的路径。这个基路径就是java.io默认定位到的当前用户目录("user.dir")(即工程根目录)。

 

案例

  从普通java类中读取项目下的a.txt文件。  

  则相对路径为:src/main/java/com/example/heima/a.txt;

 

 

 

public static void main(String[] args) throws FileNotFoundException {
        FileInputStream fileInputStream = new FileInputStream("src/main/java/com/example/heima/a.txt");
        int len = 0;
        byte [] bytes = new byte[1024];
        try {
            while ( (len = fileInputStream.read(bytes)) != -1){
                System.out.println(new String(bytes,0,len));
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

注意:在Servlet里。Java.io定位路径改为tomca的bin目录。所以Servlet里用相对路径访问不到目录下的文件。

如何看文件的相对路径:通过file.getAbsolutePath()。可以查看文件的相对路径,而不顾此文件是否存在。

 

 

 

 

 

读取JavaWeb项目下的文件,使用ServletContext.getRealPath():根据ServletContext上下文路径(target目录下快照文件)返回绝对路径

 

小点:resource里的文件,会放到web-inf下的classes文件

参考:https://blog.csdn.net/weixin_41926301/article/details/83818927

   https://www.cnblogs.com/apache-x/p/5337459.html

 

总结:Java项目相对路径以java.io定义,java.io默认项目根路径。Servlet里java.io为tomcat/bin路径。

使用ServletContext.getRealPath()(快照路径)获取文件路径。

使用ClassLoader定义(class类)获取文件路径

 实在不行输入" "字符串先获取相对根路径,在进行定夺

posted @ 2021-09-25 05:20  remix_alone  阅读(820)  评论(0)    收藏  举报