一文总结Java获取文件后缀名的所有方法

Java是一种应用广泛的编程语言,可以通过多种方式来实现对文件的操作,如文件名后缀、文件扩展名等,下面这篇文章主要给大家介绍了关于Java获取文件后缀名的所有方法,需要的朋友可以参考下

一、研究背景

在我们实际的项目开发中,我们会经常对文件进行相关任务的操作,具体的开发环节中,免不了让我们获取文件的后缀名,通过后缀名来进行下一步的相关任务操作。
文件后缀名(也称为文件扩展名)是指在文件名的最后一个句点之后的字符串,它提供了关于特定文件内容的信息,例如 .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();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179779.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML5语法总结大全(持续更新中~)

参考书籍: 《HTML与CSS3基础教程》 参考视频: HTML5完整教学通俗易懂 2023新版前端Web开发HTML5CSS3移动web视频教程,前端web入门首选黑马程序员 参考网站: w3school 文章目录 零.开发环境准备1.需要的工具2.Vscode所需要插件3.其…

智能优化算法应用:基于混合蛙跳算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于混合蛙跳算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于混合蛙跳算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.混合蛙跳算法4.实验参数设定5.算法结果6.参考…

Snagit 2024.0.1(Mac屏幕截图软件)

Snagit 2024是一款屏幕截图工具,可以帮助用户轻松捕获、编辑和分享屏幕截图。该工具在Mac上运行,旨在满足用户对于屏幕截图的各种需求。 Snagit 2024支持屏幕录制功能,可以录制摄像头和麦克风等外部设备,让用户录制更加全面的视频…

Redis基本操作及使用

📑前言 本文主要是【Redis】——Redis基本操作及使用的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一…

vue2.0 中央控制总线 Bus

vue2.0 中央控制总线 Bus 1. 废话不多说,直接上代码 2. main.js中 加入 // main.js //创建中央控制总线 Bus // 说白了就是new一个vue实例,将方法挂在上去 Vue.prototype.$event new Vue();事件分发***(A组件中)*** // A组件中…

springboot 自定义starter逐级抽取

自定义starter 背景:各个组件需要引入starter 还有自己的配置风格 –基本配置原理 (1)自定义配置文件 导入配置可以在配置文件中自动识别,提示 导入依赖后可以发现提示 (2)配置文件实现 –让配置文件对其他模块生…

酵母双杂交服务专题(二)

在理解了蛋白互作关系基础之上,为了解析它们的互作机制,往往还需要对其上下游通路上的基因进行分析。蛋白质之间的相互作用通过促进或抑制下游基因的转录,从而影响细胞的一系列生命过程。酵母单杂交技术是一种研究蛋白和DNA相互作用的常用手段…

安卓底部导航栏BottomNavigationView

目录 1. BottomNavigationView (1) 准备BottomNavigationView使用的菜单资源文件 (2) 准备颜色选择器 (3) BottomNavigationView控件设置 (4) 在Java代码中设置OnItemSelectedListener监听器 (5) 与Fragment配合 2. BottomTabBar 实现安卓底部导航栏,google为…

5面试题--redis

慢查询⽇志:⽤于记录执⾏时间超过给定时⻓的命令请求,⽤户可以通过这个功能产⽣的⽇志来监视和 优化查询速度。 布隆过滤器:⼆进制数组进⾏存储,若判断元素存在则可能实际存在,若判断不存在则⼀定不存在。 redis中inc…

C语言——一个数如果恰好等于它的因子之和,这个数就称为“完全数”。

一个数如果恰好等于它的因子之和,这个数就称为“完全数”。例如,6的因子是 1、2、3,而6123。因此6是一个完全数。编程找出 1000 之内的所有完全数。 #include <stdio.h> int main() {int i, j, sum;for (i 1; i < 1000; i) {sum 0; //这一步很重要&#xff0c;每…

Ubuntu:安装Powershell

Powershell的安装与使用&#xff1a; 1&#xff09;安装Powershell&#xff1a;在终端依次运行以下命令即可&#xff1a; $ sudo apt-get update $ sudo apt-get install -y wget apt-transport-https software-properties-common $ wget -q "https://packages.microsof…

【Linux驱动开发】环境搭建Linux驱动开发环境

环境搭建Linux驱动开发环境 1. 简单描述2. 资源3. 安装4. 基本操作和设置 1. 简单描述 基于讯为电子rk3568教程 2. 资源 下载 VMware Workstation Pro 17 链接 Ubuntu 桌面版&#xff08;64位&#xff09; 链接 3. 安装 需要选择自定义硬件&#xff08;内存大于16g 硬盘500g…

java: Internal error in the mapping processor: java.lang.NullPointerException

启动java项目出错&#xff0c;其他人工程没有问题&#xff0c;别着急。 java: Internal error in the mapping processor: java.lang.NullPointerException at org.mapstruct.ap.internal.processor.DefaultVersionInformation.createManifestUrl(DefaultVersionInformation.j…

御云出海记|巴西市场,数字化转型与地区增长的新篇章

在11月的阳光下&#xff0c;巴西圣保罗的热情与活力成为了南半球市场的缩影&#xff0c;尤其是在华为云巴西峰会上。 云峰会亮点 11月22日&#xff0c;圣保罗举办的华为云巴西峰会成为了当地科技界的焦点。此次峰会聚集了数百位政府官员、行业领袖、专家学者&#xff0c;共同讨…

Facebook的这份开源协议使React四面楚歌

如果你觉得一些科技公司看起来很美好&#xff0c;每天都在“改变世界”……你应该看看他们的用户条款和法律文书&#xff0c;藏污纳垢之严重令人震惊。 最近&#xff0c;百度和阿里巴巴内部的软件工程团队不约而同做了一件事——弃用 React。 解释下&#xff1a; React 是一个…

电力智能化系统(智能电力综合监控系统)

电力智能化系统是一个综合性的系统&#xff0c;它利用物联网、云计算、大数据、人工智能等技术&#xff0c;依托电易云-智慧电力物联网&#xff0c;采用智能采集终端和物联网关&#xff0c;将电力设备、用电负荷、电力市场等各个环节有机地联系起来&#xff0c;实现了对电力配送…

【Java】使用 IDEA 快速生成 SpringBoot 模块

项目目录下新建 module 模块 在 pom.xml 更改为 spring initializr 配置之后的 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchem…

P9240 [蓝桥杯 2023 省 B] 冶炼金属(比值问题)

数学分析&#xff1a; 1. max(最大比值) A/B 余数p&#xff08;p<B&#xff09; > Amax*Bp 反证&#xff1a;若max不为最大,则设maxn为最大比值 (maxn)*Bmax*Bn*Bp1 > A (n*Bp1 > p ,矛盾) 故max为最大比值 2.min(最小比值…

多个nginx共享值、缓存问题

背景 目前我在集成登录认证功能&#xff08;cas&#xff09;&#xff0c;使用的架构是nginxlua&#xff0c;由于我们有多个系统&#xff08;全是前端项目&#xff09;&#xff0c;每套系统都采用nginxlua的方式进行部署&#xff08;即每个系统都是一个nginx&#xff09;&#…

Joint Bilateral Upsampling

Abstract 图像分析和增强任务&#xff08;例如色调映射、着色、立体深度和蒙太奇&#xff09;通常需要在像素网格上计算解决方案&#xff08;例如&#xff0c;曝光、色度、视差、标签&#xff09;。计算和内存成本通常要求在下采样图像上运行较小的解决方案。尽管通用上采样方…