📜  Java NIO-路径(1)

📅  最后修改于: 2023-12-03 15:15:57.336000             🧑  作者: Mango

Java NIO 路径

Java NIO(New I/O)是Java 1.4引入的一个新的I/O API,它提供了比传统的Java I/O API更好的性能和可扩展性。其中一个重要的组件就是路径(Path)。

什么是路径

路径(Path)是Java NIO中的一个重要概念,可以表示一个文件或目录的位置。路径是跨平台的,可以在Windows、Linux和Mac等操作系统下使用。路径可以是绝对路径,也可以是相对路径。绝对路径指的是从根目录开始的路径,而相对路径指的是相对于当前工作目录的路径。

如何获取路径

在Java NIO中,可以使用Paths.get()方法来获取路径对象。这个方法支持传入一个或多个字符串作为参数,用于表示路径的不同部分。

Path path = Paths.get("/home/user/file.txt");

上面的代码创建了一个绝对路径/home/user/file.txt的路径对象。

Path cwd = Paths.get("");
Path relativePath = cwd.resolve("file.txt");

上面的代码创建了一个相对路径file.txt的路径对象。cwd是当前工作目录的路径对象,resolve()方法将相对路径解析为绝对路径。

路径操作

Java NIO提供了丰富的路径操作方法,常用的操作包括:

  • 获取路径的各个部分:getRoot()getParent()getFileName()getName(int)等方法;
  • 合并路径:resolve(Path)resolve(String)等方法;
  • 计算两个路径间的相对路径:relativize(Path)方法;
  • 判断路径是否存在,是否是文件或目录:exists()isDirectory()isRegularFile()等方法;
  • 获取文件属性:lastModifiedTime()size()isHidden()等方法;
  • 创建、删除文件或目录:createFile()createDirectory()delete()等方法。
Path path = Paths.get("/home/user/file.txt");

// 获取路径的根节点
Path root = path.getRoot();
System.out.println("Root: " + root);

// 获取父目录
Path parent = path.getParent();
System.out.println("Parent: " + parent);

// 获取文件名
Path fileName = path.getFileName();
System.out.println("FileName: " + fileName);

// 解析相对路径
Path relativePath = parent.resolve("new_file.txt");
System.out.println("RelativePath: " + relativePath);

// 计算相对路径
Path otherPath = Paths.get("/home/user/documents");
Path relative = otherPath.relativize(path);
System.out.println("Relative: " + relative);

// 判断是否为目录或文件
System.out.println("Is directory: " + Files.isDirectory(path));
System.out.println("Is file: " + Files.isRegularFile(path));

// 创建文件和目录
Path newFile = parent.resolve("new_file.txt");
Files.createFile(newFile);
Path newDir = parent.resolve("new_dir");
Files.createDirectory(newDir);
总结

Java NIO中的路径(Path)是表示文件或目录位置的重要概念。可以使用Paths.get()方法获取路径对象,然后使用路径操作方法进行路径处理。路径操作方法包括获取路径的各个部分、合并路径、计算相对路径、判断路径类型、获取文件属性以及创建和删除文件或目录等。