Java 7 NIO.2学习(Ing),nio.2ing
分享于 点击 42394 次 点评:204
Java 7 NIO.2学习(Ing),nio.2ing
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) +"]");
}
}
上述程序的输出结果如下:
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
相关文章
- 暂无相关文章
用户点评