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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章