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类)获取文件路径
实在不行输入" "字符串先获取相对根路径,在进行定夺

浙公网安备 33010602011771号