一文总结Java获取文件后缀名的所有方法
作者:Java?Fans 时间:2022-10-18 16:06:40
一、研究背景
在我们实际的项目开发中,我们会经常对文件进行相关任务的操作,具体的开发环节中,免不了让我们获取文件的后缀名,通过后缀名来进行下一步的相关任务操作。
文件后缀名(也称为文件扩展名)是指在文件名的最后一个句点之后的字符串,它提供了关于特定文件内容的信息,例如 .jpg 表示 JPG 图像文件,.txt 表示文本文件,等等。因此,本文总结了目前 Java 中常见的一些获取文件后缀名的方法。
二、常用方法
在这里我们设定一个文件名称 fileName,便于我们下面各方法获取后缀都统一用这个文件名称。
文件名称 fileName 代码如下:
String fileName = "first.jpg";
1、使用 String.substring() 截取
首先,使用 String.lastIndexOf() 方法可以获取文件名中最后一个句点(.)的索引值,然后使用String.substring() 方法来获取文件后缀名,代码如下:
String suffix = fileName.substring(fileName.lastIndexOf("."));
运行结果为:“.jpg”【包括点】。
2、使用 String.split() 分割
分隔符可以是任意字符、符号、数字、字符串等。
如果用 “.” 作为分隔的话,必须是如下写法,通过转义字符才能正确的分隔开,不能用 String.split(".")
String suffix=fileName.split("\\.")[fileName.split("\\.").length-1];
运行结果为:“jpg”【不包括点】。
3、使用 java 的正则表达
String suffix = fileName.replaceAll(".*(\\..*)","$1");
运行结果为:“.jpg”【包括点】。
4、使用 commons.io.FilenameUtils 类
在项目头部添加: import org.apache.commons.io.FilenameUtils;
String suffix = FilenameUtils.getExtension(fileName);
运行结果为:“jpg”【不包括点】。
5、使用 util.StringUtils 类
在项目头部添加:import org.springframework.util.StringUtils;
String suffix = StringUtils.getFilenameExtension(fileName);
运行结果为:“jpg”【不包括点】。
6、使用 java.nio.file.Paths 类
使用 java.nio.file.Paths 类可以轻松获取文件扩展名,代码如下:
String suffix= Paths.get(fileName).getFileName().toString();
字符串后缀 = Paths.get(文件名).getFileName().toString();
来源:https://blog.csdn.net/hh867308122/article/details/129304076
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java中关于Map四种取值方式
java 读写Parquet格式的数据的示例代码
![](https://img.aspxhome.com/file/2023/1/98121_0s.png)
Spring的@Validation和javax包下的@Valid区别以及自定义校验注解
源码解析Android Jetpack组件之ViewModel的使用
SpringMVC 域对象共享数据的实现示例
![](https://img.aspxhome.com/file/2023/6/75016_0s.png)
ThreadLocal数据存储结构原理解析
![](https://img.aspxhome.com/file/2023/4/128234_0s.png)
Java 反射机制原理与用法详解
使用 Lambda 取代 Android 中的匿名类
![](https://img.aspxhome.com/file/2023/6/106616_0s.jpg)
Android应用中使用Fragment组件的一些问题及解决方案总结
![](https://img.aspxhome.com/file/2023/6/116026_0s.png)
Springboot如何利用拦截器拦截请求信息收集到日志详解
spring项目中切面及AOP的使用方法
![](https://img.aspxhome.com/file/2023/8/106168_0s.png)
从"Show tabs"了解Android Input系统
![](https://img.aspxhome.com/file/2023/9/138299_0s.png)
Jmeter命令行执行脚本如何设置动态参数
![](https://img.aspxhome.com/file/2023/3/113243_0s.png)
Java使用新浪微博API通过账号密码方式登陆微博的实例
SpringBoot实现动态定时任务的示例代码
SpringCloud+RocketMQ实现分布式事务的实践
![](https://img.aspxhome.com/file/2023/0/129970_0s.png)
Android中使用TextView实现文字跑马灯效果
![](https://img.aspxhome.com/file/2023/9/84729_0s.gif)
Java中GUI工具包AWT和Swing用法介绍
![](https://img.aspxhome.com/file/2023/6/71176_0s.jpg)
解决genymotion模拟器无法联网的正确方法100%成功
![](https://img.aspxhome.com/file/2023/7/89517_0s.png)