• Java 7 NIO.2学习(Ing)


    Path类

    1、Path的基本用法
    Path代表文件系统中的位置,即文件的逻辑路径,并不代表物理路径,程序运行的时候JVM会把Path(逻辑路径)对应到运行时的物理位置上。

    package com.javadu.common;
    
    import java.nio.file.Path;
    import java.nio.file.Paths;
    
    
    /**
     * Created by duqi on 15/9/8.
     */
    public class App {
        public static void main(String[] args) {
            //创建Path对象
            Path listing = Paths.get("/usr/bin/zip");
            //获取Path代表的文件(或目录)名字
            System.out.println("File Name [" + listing.getFileName() +"]");
            //获取路径中名称元素的数量
            System.out.println("Number of Name Elements in the Path [" + listing.getNameCount() + "]");
            //获取当前路径的父路径
            System.out.println("Parent Path [" + listing.getParent() +"]");
            //获取当前路径的根目录
            System.out.println("Root Path [" + listing.getRoot() +"]");
            //获取从当前路径的根目录(0)到其第二个元素(2)之间的子路径
            System.out.println("Subpath from Root, 2 elements deep [" + listing.subpath(0,2) +"]");
        }
    }

    上述程序的输出结果如下:
    Path的用法

    2、利用Path移除冗余项

    • 利用normalize()方法可以去掉Path中的冗余信息,例如给定”./App.java”,如果直接使用Paths.get("./App.java").getFileName();会找不到这个文件,必须得使用normalize()方法将冗余信息去掉。
    • 利用toRealPath()方法可以检测出符号链接并解析出真正的路径。例如在我的家目录下有.zshrc文件,这个文件其实是个符号链接文件,表示如下,它的真实路径是“/Users/duqi/.zprezto/runcoms/zshrc”

    这里写图片描述

    查看下面代码:

    package com.javadu.common;
    
    import java.io.IOException;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    
    
    /**
     * Created by duqi on 15/9/8.
     */
    public class App {
        public static void main(String[] args) {
            //去除冗余信息
            Path normalizedPath = Paths.get("./App.java").normalize();
            System.out.println(normalizedPath);
            //处理符号链接,取得真实路径
            try {
                Path realPath = Paths.get("/Users/duqi/.zshrc").toRealPath();
                System.out.println(realPath);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    

    对应的执行结果是:
    这里写图片描述

    3、向后兼容
    (1)java.io.File类中增加了toPath()方法,可以把已经有的File转换为新的Path;
    (2)Path类中有个toFile()方法,可以把现有的Path转换为File对象。

    处理目录和目录树

    文件系统I/O

    异步IO

  • 相关阅读:
    UVA756
    SP30906
    SP32900
    CF940F
    洛谷P5030
    洛谷P5142
    洛谷P2569
    网络流 24 题做题记录
    矩阵
    二分图
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742617.html
Copyright © 2020-2023  润新知