java 7 NIO2(1) Path类相关新API
java 7 新的NIO API新增了FileSystem和FileStore相关API,最主要的是Path.java类,主要是我们常见的文件的一些相关操作,这个Path是NIO IO操作的基础,我们可以定义一个文件路径,对路径的相关操作等,
我们先看下java7 NIO 2新增的API:

我们看下这个API使用的示例:
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import java.nio.file.Paths;
//NIO 2 file APi filesystem filestore
public class NIO2File {
public static void main(String[] args) {
try {
// FileSystems.getDefault().getPath(first, more)
Path path = Paths.get(System.getProperty("user.home"), "www",
"pyweb.settings");
Path real_path = path.toRealPath(LinkOption.NOFOLLOW_LINKS);
System.out.println("Path to real path: " + real_path);
System.out.println("Number of name elements in path: "
+ path.getNameCount());
for (int i = 0; i < path.getNameCount(); i++) {
System.out.println("Name element " + i + " is: "
+ path.getName(i));
}
System.out.println("Subpath (0,3): " + path.subpath(0, 3));
File path_to_file = path.toFile();
Path file_to_path = path_to_file.toPath();
System.out.println("Path to file name: " + path_to_file.getName());
System.out.println("File to path: " + file_to_path.toString());
Path base = Paths.get(System.getProperty("user.home"), "www",
"pyweb.settings");
// resolve AEGON.txt file
Path path1 = base.resolve("django.wsgi");
System.out.println(path1.toString());
Path path2 = base.resolveSibling(".bashrc");
System.out.println(path2.toString());
Path path01_to_path02 = path1.relativize(path2);
System.out.println(path01_to_path02);
try {
boolean check = Files.isSameFile(path1.getParent(),
path2.getParent());
if (check) {
System.out.println("The paths locate the same file!"); // true
} else {
System.out
.println("The paths does not locate the same file!");
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
boolean sw = path1.startsWith("/rafaelnadal/tournaments");
boolean ew = path1.endsWith("django.wsgi");
System.out.println(sw);
System.out.println(ew);
for (Path name : path1) {
System.out.println(name);
}
} catch (NoSuchFileException e) {
System.err.println(e);
} catch (IOException e) {
System.err.println(e);
}
}
}
输出:
Path to real path: /home/weijianzhongwj/www/pyweb.settings Number of name elements in path: 4 Name element 0 is: home Name element 1 is: weijianzhongwj Name element 2 is: www Name element 3 is: pyweb.settings Subpath (0,3): home/weijianzhongwj/www Path to file name: pyweb.settings File to path: /home/weijianzhongwj/www/pyweb.settings /home/weijianzhongwj/www/pyweb.settings/django.wsgi /home/weijianzhongwj/www/.bashrc ../../.bashrc The paths does not locate the same file! false true home weijianzhongwj www pyweb.settings django.wsgi
API很类似linux上的文件操作命令,新增的unix fifilesystem等。

浙公网安备 33010602011771号