ToB企服应用市场:ToB评测及商务社交产业平台

标题: java 文件的操作(Path、Paths、Files) [打印本页]

作者: 何小豆儿在此    时间: 2024-10-14 16:44
标题: java 文件的操作(Path、Paths、Files)
Path、Paths 和 Files 是 Java NIO(New I/O)文件处置惩罚系统中的核心组件,它们提供了比传统 java.io.File 更加灵活和高效的文件操作方式。
1. 概述

随着 Java 7 引入 NIO.2(即 Java New I/O 2),文件处置惩罚得到了显著改进。Path、Paths 和 Files 是 NIO.2 中用于文件和目录操作的三个关键组件:
相比传统的 File 类,NIO.2 提供了更好的错误处置惩罚、更丰富的功能以及对差别文件系统的支持。
2. Path 接口

概述

Path 是一个接口,位于 java.nio.file 包中,用于表示文件系统中的路径。它提供了一种平台无关的方式来表示文件和目录的路径,并支持丰富的路径操作。
主要功能和方法

以下是 Path 接口的一些关键方法和功能:
路径创建与解析

路径信息

路径转换

路径比力

其他方法

示例代码
  1. import java.nio.file.Path;
  2. import java.nio.file.Paths;
  3. public class PathExample {
  4.     public static void main(String[] args) {
  5.         // 创建 Path 实例
  6.         Path path = Paths.get("src", "main", "java", "Example.java");
  7.         
  8.         // 获取文件名
  9.         System.out.println("文件名: " + path.getFileName());
  10.         
  11.         // 获取父路径
  12.         System.out.println("父路径: " + path.getParent());
  13.         
  14.         // 获取根路径
  15.         System.out.println("根路径: " + path.getRoot());
  16.         
  17.         // 规范化路径
  18.         Path normalizedPath = path.normalize();
  19.         System.out.println("规范化路径: " + normalizedPath);
  20.         
  21.         // 转换为绝对路径
  22.         Path absolutePath = path.toAbsolutePath();
  23.         System.out.println("绝对路径: " + absolutePath);
  24.         
  25.         // 解析子路径
  26.         Path resolvedPath = path.resolve("subdir/File.txt");
  27.         System.out.println("解析后的路径: " + resolvedPath);
  28.         
  29.         // 计算相对路径
  30.         Path basePath = Paths.get("src/main");
  31.         Path relativePath = basePath.relativize(path);
  32.         System.out.println("相对路径: " + relativePath);
  33.         
  34.         // 遍历路径中的元素
  35.         System.out.println("路径元素:");
  36.         for (Path element : path) {
  37.             System.out.println(element);
  38.         }
  39.     }
  40. }
复制代码
输出示例:
  1. 文件名: Example.java
  2. 父路径: src/main/java
  3. 根路径: null
  4. 规范化路径: src/main/java/Example.java
  5. 绝对路径: /Users/username/project/src/main/java/Example.java
  6. 解析后的路径: src/main/java/Example.java/subdir/File.txt
  7. 相对路径: java/Example.java
  8. 路径元素:
  9. src
  10. main
  11. java
  12. Example.java
复制代码
3. Paths 类

概述

Paths 是一个最终类,位于 java.nio.file 包中,提供了静态方法用于创建 Path 实例。它简化了 Path 对象的创建过程,使代码更加简便和易读。
创建 Path 实例
  1. import java.nio.file.Path;
  2. import java.nio.file.Paths;
  3. import java.net.URI;
  4. public class PathsExample {
  5.     public static void main(String[] args) {
  6.         // 使用多个字符串片段创建路径
  7.         Path path1 = Paths.get("C:", "Users", "Public", "Documents");
  8.         System.out.println("路径1: " + path1);
  9.         
  10.         // 使用单个字符串创建路径
  11.         Path path2 = Paths.get("/home/user/docs");
  12.         System.out.println("路径2: " + path2);
  13.         
  14.         // 使用相对路径创建路径
  15.         Path path3 = Paths.get("src/main/java/Example.java");
  16.         System.out.println("路径3: " + path3);
  17.          
  18.         // 组合路径片段
  19.         Path basePath = Paths.get("/home/user");
  20.         Path combinedPath = basePath.resolve("downloads/music");
  21.         System.out.println("组合后的路径: " + combinedPath);
  22.     }
  23. }
复制代码
输出示例:
  1. 路径1: C:\Users\Public\Documents
  2. 路径2: /home/user/docs
  3. 路径3: src/main/java/Example.java
  4. 组合后的路径: /home/user/downloads/music
复制代码
注意事项

4. Files 类

概述

Files 是一个最终类,位于 java.nio.file 包中,提供了大量的静态方法用于执行文件和目录的各种操作。它与 Path 接口紧密集成,提供了比 java.io.File 更加丰富和高效的功能。
主要功能和方法

Files 类的方法可以大致分为以下几类:
1. 文件和目录的创建

2. 文件和目录的删除

3. 文件和目录的复制与移动

4. 文件内容的读取与写入

<ul>static byte[] readAllBytes(Path path):读取文件的所有字节。
static List readAllLines(Path path, Charset cs):按行读取文件内容。
static Path write(Path path, byte[] bytes, OpenOption... options):将字节数组写入文件。
<strong>static Path write(Path path, Iterable




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4