java中用父路径和子路径创建file对象有什么用呢
是相对路径和绝对路径的问题
在Java中用File对象来创建文件时,绝对路径一般是不会出现什么问题的,如果使用相对路径,则有可能出现意向不到的问题,以下主要是针对相对路径进行解释
1、Eclipse下的Java Project环境
目录结构如下所示:
JavaTest
src
com.ccse.TestDemo.java
resource
text.txt
String filepath = "resource/train.txt";
File file = new File(filepath);
注意:filepath变量的内容
在此,java.io默认情况下用当前目录来分析相对路径名,定位到当前用户目录下("user.dir"),即工程目录d:\JavaTest下,因此此时的相对路径(以当前用户目录为基础)为"resource/train.txt",这样JVM就根据用户当前目录(user.dir) 和"resource/train.txt"得到完整路径,即绝对路径,从而找到相应的文件,需要注意的是相对路径的起始处无斜杠“/”,比如上面的filepath。
publicstaticvoidtest1(){
Filefile1=newFile(".\\test1.txt");
Filefile2=newFile("D:\\workspace\\test\\test1.txt");
System.out.println("-----默认相对路径:取得路径不同------");
System.out.println(file1.getPath());
System.out.println(file1.getAbsolutePath());
System.out.println("-----默认绝对路径:取得路径相同------");
System.out.println(file2.getPath());
System.out.println(file2.getAbsolutePath());
}
得到的结果:
-----默认相对路径:取得路径不同------
.\test1.txt
D:\workspace\test\.\test1.txt
-----默认绝对路径:取得路径相同------
D:\workspace\test\test1.txt
D:\workspace\test\test1.txt
因为getPath()得到的是构造file的时候的路径。
getAbsolutePath()得到的是全路径
如果构造的时候就是全路径那直接返回全路径
如果构造的时候试相对路径,返回当前目录的路径+构造file时候的路径
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!