相对路径与绝对路径


相对路径与绝对路径

绝对路径

获得本类的位置:

 URL base = this.getClass().getResource("");

如:/home/popeye/testjava/build/classes/net/ 根据本类位置获取别的文件的位置

String path = new File(base.getFile(),"../../../"+name).getCanonicalPath();

得到:/home/popeye/testjava/name

相对路径

结构目录–
DecisionTree/src/com/decisiontree/SamplesReader.java
DecisionTree/resource/train.txt,test.txt

SamplesReader.java:

String filepath="resource/train.txt";//注意filepath的内容;
File file=new File(filepath);

java.io默认定位到当前用户目录(“user.dir”)下,即:工程根目录”D:\DecisionTree”下,因此,此时的相对路径(以user.dir为基路径的路径)为resource/train.txt。这样,JVM就可以根据”user.dir”与”resource/train.txt”得到完整的路径(即绝对路径)D:\DecisionTree\resource\train.txt,从而找到train.txt文件。
注意:相对路径的起始处无斜杆”/”;例如:filepath="resource/train.txt";而不是filepath="/resource/train.txt"; //error!

获取”user.dir”:
String rootPath = System.getProperty("user.dir");//rootPath=运行类的根目录