java 如何获取文件后缀
获取文件后缀的方法
在Java中,可以通过多种方式获取文件的后缀名。以下是几种常见的方法:
使用String的split方法
通过将文件名按点号.分割,获取最后一部分作为后缀名。

String fileName = "example.txt";
String[] parts = fileName.split("\\.");
String extension = parts.length > 1 ? parts[parts.length - 1] : "";
System.out.println(extension); // 输出 "txt"
使用String的lastIndexOf方法
通过查找最后一个点号的位置,截取后缀名。
String fileName = "example.txt";
int lastDotIndex = fileName.lastIndexOf('.');
String extension = lastDotIndex != -1 ? fileName.substring(lastDotIndex + 1) : "";
System.out.println(extension); // 输出 "txt"
使用Path和Files工具类(Java 7+)
对于文件路径,可以使用java.nio.file.Path和java.nio.file.Files来获取后缀名。

import java.nio.file.Path;
import java.nio.file.Paths;
Path path = Paths.get("example.txt");
String fileName = path.getFileName().toString();
String extension = fileName.substring(fileName.lastIndexOf('.') + 1);
System.out.println(extension); // 输出 "txt"
使用FilenameUtils工具类(Apache Commons IO)
如果项目中引入了Apache Commons IO库,可以使用FilenameUtils.getExtension方法。
import org.apache.commons.io.FilenameUtils;
String fileName = "example.txt";
String extension = FilenameUtils.getExtension(fileName);
System.out.println(extension); // 输出 "txt"
处理特殊情况
如果文件名中包含多个点号(如archive.tar.gz),可能需要根据需求决定是否保留完整后缀(如tar.gz)或仅取最后一部分(如gz)。
String fileName = "archive.tar.gz";
String extension = fileName.substring(fileName.lastIndexOf('.') + 1);
System.out.println(extension); // 输出 "gz"
注意事项
- 确保文件名不为空或null,否则可能导致异常。
- 对于没有后缀的文件(如
README),上述方法会返回空字符串。 - 在Windows和Linux系统中,路径分隔符不同,使用
Path类可以更好地处理跨平台问题。






