你的位置:首页 > Java教程

[Java教程]2.2.3 移除冗余项


(一个点).表示当前目录;

(两个点)..表示父目录;

冗余情况1:log.txt与./log.txt等价,即./log.txt中的./就是一个冗余项;

冗余情况2:符号链接(快捷方式(shortcut)是一种功能上类似符号链接的文件对象,但与符号链接有本质的不同。【符号链接_百度百科】);

 

移除冗余项的方法
normalize()移除冗余
toRealPath()

normalize()+toAbsolutePath()

移除冗余+绝对地址

Demo:

import java.io.IOException;import java.nio.file.Path;import java.nio.file.Paths;/** * @author jinxing * @备注 toRealPath() 和 toRealPath(LinkOption.NOFOLLOW_LINKS) 应该可以用于符号链接返回真实地址;【但我对符号链接并不了解,在这里会报错,先注释了;】 */public class PathRemoveRedundant {    public static void main(String[] args) throws IOException {        // 相对地址    Path pathRel = Paths.get("./PathRemoveRedundant.java");        // 移除[相对地址中的]冗余[地址]    Path pathRelRR = pathRel.normalize();        // 绝对地址    Path pathAbs = pathRel.toAbsolutePath();        // 绝对地址+去除冗余//   Path pathAbsRR = pathRel.toRealPath();//   Path pathAbsRR = pathRel.toRealPath(LinkOption.NOFOLLOW_LINKS);        // show    System.out.println(pathRel);    System.out.println(pathRelRR);    System.out.println(pathAbs);//   System.out.println(pathAbsRR);      }}

Ran As Java Application:

./PathRemoveRedundant.javaPathRemoveRedundant.java/Users/jinxing/Documents/workspace/nio.2/./PathRemoveRedundant.java