zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    CF1202F You Are Given Some Letters...
    CF1178E Archaeology
    PTA (Advanced Level) 1005 Spell It Right
    PTA (Advanced Level) 1004 Counting Leaves
    Qt5——从零开始的Hello World教程(Qt Creator)
    PTA (Advanced Level) 1003 Emergency
    PTA (Advanced Level) 1002 A+B for Polynomials
    HDU 1272 小希的迷宫
    FZU 2150 Fire Game
    HihoCoder
  • 原文地址:https://www.cnblogs.com/javaadu/p/11742617.html
Copyright © 2011-2022 走看看