获取文件路径,有三种方式,哪种靠谱些,我们看看下面的测试。
包的结构
test.txt内容
sasdfasdf
public class TestPath {
public static void main(String[] args) {
String cps = "/lujing/test.txt";
File f1 = new File("src/lujing/test.txt");
System.out.println("f1:"+f1.canRead());
System.out.println("f1:"+f1.getPath());
System.out.println("f1:"+f1.length());
System.out.println("================");
File f2 = new File("D://myeclipse-workspace//TestAll//src//lujing//test.txt");
System.out.println("f2:"+f2.canRead());
System.out.println("f2:"+f2.getPath());
System.out.println("f2:"+f2.length());
System.out.println("================");
File f3 = new File(TestPath.class.getResource(cps).getFile());
System.out.println("f3:"+f3.canRead());
System.out.println("f3:"+f3.getPath());
System.out.println("f3:"+f3.length());
}
}
我们在eclipse下面的执行结果
f1:true
f1:src\lujing\test.txt
f1:9
================
f2:true
f2:D:\myeclipse-workspace\TestAll\src\lujing\test.txt
f2:9
================
f3:true
f3:D:\myeclipse-workspace\TestAll\bin\lujing\test.txt
f3:9
我们在命令行下面的执行结果
D:\myeclipse-workspace\TestAll\src>javac lujing/TestPath.java
D:\myeclipse-workspace\TestAll\src>java lujing/TestPath
f1:false
f1:src\lujing\test.txt
f1:0
================
f2:true
f2:D:\myeclipse-workspace\TestAll\src\lujing\test.txt
f2:9
================
f3:true
f3:D:\myeclipse-workspace\TestAll\src\lujing\test.txt
f3:9
实践证明,采用绝对路径的写法靠谱些。