Java中判断文件存在与可读推荐使用java.nio.file.Files类;2. Files.exists(Path)判断文件是否存在,Files.isReadable(Path)判断是否可读;3. 需注意存在不代表可读,应分别检查,且优先使用绝对路径确保准确性。

在Java中判断文件是否存在以及是否可读,主要可以通过 java.io.File 类或更推荐的 java.nio.file.Files 工具类来实现。以下是具体方法。
使用 java.io.File 判断存在与可读
File 类提供了两个简单的方法:
- exists():判断文件或目录是否存在
- canRead():判断文件是否可读
示例代码:
File file = new File(“example.txt”);
if (file.exists()) {
System.out.println(“文件存在”);
if (file.canRead()) {
System.out.println(“文件可读”);
} else {
System.out.println(“文件不可读”);
}
} else {
System.out.println(“文件不存在”);
}
使用 java.nio.file.Files 判断(推荐)
从 Java 7 开始,NIO.2 提供了更强大、更安全的 Files 工具类:
- Files.exists(Path):判断路径是否存在
- Files.isReadable(Path):判断文件是否可读
示例代码:
Path path = Paths.get(“example.txt”);
if (Files.exists(path)) {
System.out.println(“文件存在”);
if (Files.isReadable(path)) {
System.out.println(“文件可读”);
} else {
System.out.println(“文件不可读”);
}
} else {
System.out.println(“文件不存在”);
}
注意事项
使用时需注意以下几点:
- File 的 canRead() 可能在某些操作系统或权限设置下返回 false,即使文件实际可读
- NIO.2 的 Files 方法更精确,支持符号链接等高级特性
- 路径建议使用绝对路径或确保相对路径正确
- 检查前最好先确认是文件而不是目录(可用 Files.isRegularFile(path))
基本上就这些。推荐新项目使用 java.nio.file.Files 配合 Path,更现代且功能更强。不复杂但容易忽略的是:存在不代表可读,两者要分开判断。
立即学习“Java免费学习笔记(深入)”;


