Java获取文件路径常用方法解析

更新时间:2023-05-25 15:43:00 阅读: 评论:0

Java获取⽂件路径常⽤⽅法解析
1. 前⾔
Java 开发中我们经常要获取⽂件的路径,⽐如读取配置⽂件等等。今天我们就关于⽂件的路径和如何读取⽂件简单地探讨⼀下。柔和的意思
2. ⽂件的路径
⽂件的路径通常有相对路径与绝对路径。
菲尼克斯太阳队
2.1 相对路径
以当前⽂件为基准进⾏⼀级级⽬录指向被引⽤的资源⽂件。在 Java 代码中以当前运⾏的代码所在的位置为参照位置,只要被引⽤的⽂件相对于引⽤的⽂件的位置不变就可以被读取到。⼀旦改变相对位置就⽆法被读取到。
2.2 绝对路径
⽂件在⽂件系统中真正存在的路径,是指从硬盘的根⽬录(Windows为盘符)开始,进⾏⼀级级⽬录指向
⽂件(从根⽬录⼀层层读写)。绝对路径顾名思义就是绝对的地址,就像你只要告诉别⼈你家的门牌号,他就能找到你家。⽽不是相对位置你告诉他在⽼王家的隔壁⼀样。
2.3 路径速记符
我们经常看到⼀些⽂件⽬录路径使⽤⼀些符号来简写,这⾥有必要总结⼀下(以类 Unix系统为例):
标识符说明
../表⽰当前⽂件所在的⽬录的上⼀级⽬录
./表⽰当前⽂件所在的⽬录
/表⽰根⽬录
~当前⽤户⽬录, mac 下为 /Urs/urname,⽽ win10下为c:\urs\urname
Windows 下基本将 / 改为 \ 即可。
新东方在线网站3. Java 中读取⽂件
我们先来声明⼀个测试路径:apec blue
foo
|_src
| |_Test.java
儿童学习网| |_l
其中 Test.java ⽤来编写读取 l ⽂件的逻辑。Java 中通过java.io.File 来进⾏⽂件操作。并且提供了以下三个⽅法来获取⽂件的路径。
3.1 getPath
该⽅法返回⽂件抽象路径名的字符串形式。实际上就是传递给 File 构造函数的路径名。
因此,如果 File 对象是使⽤相对路径创建的,则返回的值也将是相对路径。如果是绝对路径就返回绝对路径。
File file = new File("./l");
freetranslation
# 输出 path = ./l
System.out.println("path = " + Path());
# 如果为绝对路径
File file = new File("/Urs/dax/IdeaProjects/foo/l");
# 输出 path = path = /Urs/dax/IdeaProjects/foo/ltx什么意思
System.out.println("path = " + Path());
illume3.2 getAbsolutePath
该⽅法返回⽂件的绝对路径。请注意!这⾥是有⼤坑的。如果你的⽂件在 Java ⼯程内,路径是按照编译后的路径计算的。
File file = new File("./l");
# absolutePath = /Urs/dax/IdeaProjects/foo/./l
System.out.println("absolutePath = " + absolutePath);
同时我们发现该⽅法只解析当前⽬录(上⾯代码所在的⽬录)的相对路径,如果初始化中的路径包含了 2.3 章节中的速记符,速记符将不会被解析。
因为速记符的存在,⼀个⽂件在⽂件系统中的绝对路径可以有很多个。
3.3 getCanonicalPath
速记符不被解析有时候是很痛苦的事,我们可能需要知道具体的路径。getCanonicalPath() ⽅法解决了这个问题。
File file = new File("./l");
# canonicalPath = /Urs/dax/IdeaProjects/l
异国风情的意思System.out.println("canonicalPath = " + CanonicalPath());
无所谓的英文由于getCanonicalPath()读取的是⽂件系统,因此会降低性能。如果我们确定没有使⽤速记符,并且驱动器号⼤⼩写已标准化(如果使⽤Windows OS),我们应该⾸选使⽤getAbsoultePath(),除⾮你的项⽬中必须使⽤ getCanonicalPath()。
规范路径(不包含速记符)对于⼀个固定位置的⽂件来说是唯⼀的。
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

本文发布于:2023-05-25 15:43:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/772730.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:路径   速记   位置
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图