jdk 1.7系列 (二)文件 I/O 的基石 :Path
阿新 • • 發佈:2018-10-31
.com 隨心所欲 println prefix logs filesyste args 工具類 功能
在NIO.2的文件 I/O 中,Path是必須掌握的關鍵類之一。Path通常代表文件系統中的位置,比如 C:\Windows\System32
什麽是根目錄、絕對路徑和相對路徑
比如說,代碼要讀取位於 /java7dev/src/main/Demo.java目錄下的文件名。
- 根路徑為 /java7dev
- 絕對路徑為 /java7dev/src/main/
- 進入到 絕對路徑下 可使用相對路徑 ../main
備註:這裏簡略概括,想深入了解可訪問 https://www.cnblogs.com/crizygo/p/5369081.html
文件 I/O 的關鍵基礎類
類 | 說明 |
Path | Path類中的方法可以用來獲取路徑信息,訪問該路徑中的各元素,將路徑轉換為其他形式,或提取路徑中的一部分。有的方法還可以匹配路徑字串以及移除路徑中的冗余項 |
Paths | 工具類,提供返回路徑的輔助方法,比如get(String first, String ... more) 和 get(URI url) |
FileSystem | 與文件系統交互的類,無論是默認的文件系統,還是通過其同意資源標識(URI) 獲取的可選文件系統 |
FileSystems | 工具類,提供各種方法,比如其中用於返回默認文件系統的FileSystems.getDefault() |
備註:Path不一定代表真實的文件或者目錄。可隨心所欲地操作Path,用Files中的功能來檢查文件是否存在,並對它進行處理。
Path的基本用法
package com.gudongcheng.jdk7.nio;import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; /** * @author lizuoyang * @date 2018/10/30 * @desc Path類的用法 */ public class PathDemo { public static void main(String[] args) { //創建絕對路徑 Path demo = Paths.get("/usr/bin/zip"); //獲取文件名 System.out.println("File Name :" + demo.getFileName());//獲取名稱元素的數量 System.out.println("Number of Name Elements:" + demo.getNameCount()); //獲取root路徑(頂層) System.out.println("Root of Path:" + demo.getRoot()); //獲取0-2位子路徑 System.out.println("Subpath from Root, 2 elements deep:" + demo.subpath(0, 2)); //去除冗余路徑 獲取文件的真正位置 Path normalizedPath = Paths.get("./PathDemo.java").normalize(); System.out.println("Path normalizedPath:" + normalizedPath); //合並兩個Path 通過resolve() Path prefix = Paths.get("/uat"); Path completePath = prefix.resolve("conf/application.properties"); System.out.println("Path resolve :" + completePath.toAbsolutePath()); //File類和Path類的相互轉換 File file = new File("../demo.java"); //File to Path Path file2Path = file.toPath(); System.out.println("File to Path:" + file2Path.toAbsolutePath()); //Path to File File path2File = file2Path.toFile(); System.out.println("Path to File:" + path2File.getPath()); } }
jdk 1.7系列 (二)文件 I/O 的基石 :Path