Java-获取文件拓展名

Java获取文件拓展名的三种方式

原生Java方式

1
2
3
4
5
public Optional<String> getExtensionByStringHandling(String filename) {
return Optional.ofNullable(filename)
.filter(f -> f.contains("."))
.map(f -> f.substring(filename.lastIndexOf(".") + 1));
}

特殊情况:

  • 没有拓展名:该函数返回空字符串
  • 只有拓展名(例如.gitignore):返回gitignore

使用Apache Commons IO包下的FilenameUtils.getExtension工具

1
2
3
public String getExtensionByApacheCommonLib(String filename) {
return FilenameUtils.getExtension(filename);
}

使用Guava Library

1
2
3
4
5
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>24.1.1-jre</version>
</dependency>
1
2
3
public String getExtensionByGuava(String filename) {
return Files.getFileExtension(filename);
}