Java中获取文件后缀名(扩展名)的几种方式整理

2022-08-31 1177点热度 0人点赞 0条评论

Java中截取文件名的后缀名有几种方式,整理如下:

使用String的lastIndexOf(".") 查找最后一个.的位置,然后截取

/**
 * 获取文件名的扩展名
 * @param fileName
 * @return 例如test.jpg 返回的扩展名是jpg
 */
private static String getExtension(String fileName) {
    String extension = "";
    int i = fileName.lastIndexOf('.');
    if (i > 0) {
        extension = fileName.substring(i + 1);
    }
    return extension;
}

使用正则的replaceAll

/**
 * 获取文件名的扩展名
 * @param fileName
 * @return 例如test.jpg 返回的扩展名是jpg
 */
private static String getExtension(String fileName) {
    return fileName.replaceAll("^.*\\.(.*)$", "$1");
}

使用正则表达式的Pattern/Matcher

/**
 * 获取文件名的扩展名
 * @param fileName
 * @return 例如test.jpg 返回的扩展名是jpg
 */
private static String getExtension(String fileName) {
    String extension = "";
    Pattern pattern = Pattern.compile("(.*)\\.(.*)");
    Matcher matcher = pattern.matcher(fileName);
    if (matcher.find()) {
        extension = matcher.group(2);
    }
    return extension;
}

利用apache commons-io 的工具方法

引入pom.xml 依赖:

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

使用方式:

String fileName = "test.jpg";
System.out.println(org.apache.commons.io.FilenameUtils.getExtension(fileName)); // 打印出jpg

这种方式适合于项目中已经使用了common-io依赖(一般来说这个库还是比较常用的),如果只是为了获取扩展名就引入一个依赖,就不划算了。

 

admin

这个人很懒,什么都没留下

文章评论

您需要 登录 之后才可以评论