📅  最后修改于: 2023-12-03 15:15:57.336000             🧑  作者: Mango
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()
方法获取路径对象,然后使用路径操作方法进行路径处理。路径操作方法包括获取路径的各个部分、合并路径、计算相对路径、判断路径类型、获取文件属性以及创建和删除文件或目录等。