一文总结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
猜你喜欢
- 首先说说什么叫回调函数?在WINDOWS中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口
- 什么是注解在早期的工作的时候 ,自定义注解写的比较多,可大多都只是因为 这样看起来 不会存在一堆代码耦合在一起的情况,所以使用了自定义注解,
- 这是一个可以从乱码文本中得到正确的原始文本的程序,其基于的原理在于错误的编码往往导致位补充,因此正确的文本使用的字节数应该是最少的(之一)。
- 直接来,RequestDemo5代码,get请求和post请求都请求转发了,转发到RequestDemo6请求 RequestDe
- 前言这里主要简单介绍如何使用Camera+SurfaceView自定义相机拍照,如果是Camera2或者是TextureView的可以前往主
- 当你使用synchronized关键字的时候,是通过互斥器来保障线程安全以及对共享资源的同步访问。线程间也经常需要更进一步的协调
- JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str
- 本文实例讲述了java识别一篇文章中某单词出现个数的方法。分享给大家供大家参考。具体如下:1. java代码:import java.io.
- import java.io.BufferedReader; import java.io.IOException;  
- 自定义TypeHandler映射JSON类型为List1. 实体类这里只展示需要映射的字段,分别在所需映射的字段和实体类上添加注解。&nbs
- 环境JDK 1.8Spring Boot 2.3.0.RELEASEMaven 3.6.1H2 数据库用户名密码登录首先,我们用 Sprin
- 咱们废话不多说进入主题、系统主页展示:用户登录后进行系统首页:主要功能模块如下、分角色管理、超级管理员拥有最高权限、可以进行菜单灵活控制、用
- 下面是 Java 线程相关的热门面试题,你可以用它来好好准备面试。1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程
- 1.前言任何系统,我们不会傻傻的在每一个地方进行异常捕获和处理,整个系统一般我们会在一个的地方统一进行异常处理,spring boot全局异
- 在学会了java中io流的使用后,我们对于数组的排序,又多了一种使用方法。大家知道流处理数据的效率是比较理想的,那么在具体操作数组排序上,很
- 上一章节回顾:Netty分布式源码分析监听读事件概述pipeline, 顾名思义, 就是管道的意思, 在net
- 二分查找又称折半查找,它是一种效率较高的查找方法。折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以
- 一、缩略图在浏览相册的时候,可能需要生成相应的缩略图。直接上代码:public class ImageUtil { private Logg
- IDEA快速创建getter和setter方法找到generate我的是Mac,右击鼠标就可以打开,相信windows也不难。选择gette
- 本文实例讲述了Java设计模式之抽象工厂模式。分享给大家供大家参考,具体如下:具体工厂类:生产创建某一类具体产品对象。抽象产品类可以使用接口