在Java中,Paths类位于java.nio.file包下,是获取和操作文件路径的基础工具。它提供静态方法get,用于根据路径字符串或URI构造Path实例,从而以统一方式表示文件或目录位置。

Paths类的基本用法
Paths类最常用的方式是调用Paths.get方法。该方法有多种重载形式,可以接收String类型的路径片段,也可以接收URI对象。下面的示例展示了如何获取一个文件的路径对象:
import java.nio.file.Path;
import java.nio.file.Paths;
public class PathDemo {
public static void main(String[] args) {
// 使用相对路径获取Path对象
Path relativePath = Paths.get("config", "app.properties");
System.out.println("相对路径: " + relativePath);
// 使用绝对路径获取Path对象
Path absolutePath = Paths.get("/usr/local/data/test.txt");
System.out.println("绝对路径: " + absolutePath);
// 从URI获取路径
try {
Path uriPath = Paths.get(new java.net.URI("file:///tmp/logs/run.log"));
System.out.println("URI路径: " + uriPath);
} catch (Exception e) {
e.printStackTrace();
}
}
}
获取当前项目路径
在实际开发中,经常需要获取当前工程所在的目录。可以结合Paths.get与系统属性来实现:
import java.nio.file.Path;
import java.nio.file.Paths;
public class CurrentDir {
public static void main(String[] args) {
// 获取用户当前工作目录
String userDir = System.getProperty("user.dir");
Path projectPath = Paths.get(userDir);
System.out.println("项目路径: " + projectPath.toAbsolutePath());
}
}
Paths与Files的配合
获取到Path对象后,通常会用java.nio.file.Files类进行读写判断。例如检查文件是否存在并读取内容:
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.Files;
import java.io.IOException;
import java.util.List;
public class ReadWithPath {
public static void main(String[] args) {
Path path = Paths.get("README.md");
if (Files.exists(path)) {
try {
List<String> lines = Files.readAllLines(path);
lines.forEach(System.out::println);
} catch (IOException e) {
e.printStackTrace();
}
} else {
System.out.println("文件不存在");
}
}
}
常见注意事项
- Paths.get不会校验路径是否真实存在,仅构造路径对象。
- Windows与Linux路径分隔符不同,使用Paths可屏蔽系统差异。
- 若路径包含特殊字符,建议用URI方式构造以避免解析错误。
通过上述方式,开发者可以在Java中轻松使用Paths类获取各类文件路径,并为后续文件操作打下基础。