在对文件进行操作的时候,我们经常需要用到文件的后缀。但是Java API中并没有提供获取文件后缀的方法。下面的工具方法可以帮助我们实现这个目的。

方法1

代码示例:

package org.4spaces;

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.io.OutputStream;

public class ExtensionExample {

public static void main(String[] args) {

String extension = new ExtensionExample().getFileExtension(new File("D:\\cobcmw\\xshell-user-config.jpg"));

System.out.println("File Extension :- " + extension);

}

/**

* 获取文件后缀的方法

*

* @param file 要获取文件后缀的文件

* @return 文件后缀

* @author https://www.4spaces.org/

*/

public String getFileExtension(File file) {

String extension = "";

try {

if (file != null && file.exists()) {

String name = file.getName();

extension = name.substring(name.lastIndexOf("."));

}

} catch (Exception e) {

extension = "";

}

return extension;

}

}

代码输出结果:

File Extension :- .jpg

如果需要移除分隔符,需要将代码修改为extension = name.substring(name.lastIndexOf(".")+1);。

方法2

import org.apache.commons.io.FilenameUtils

String fileType = FilenameUtils.getExtension(fileName).toLowerCase();

java获取文件后缀_Java获取文件后缀的两种方式相关推荐

  1. java hashmap遍历顺序_Java中HashMap遍历的两种方式

    第一种: Map map =  HashMap(); Iterator iter = map.entrySet().iterator(); (iter.hasNext()) { Map.Entry e ...

  2. java如何实现多线程_Java中实现多线程的两种方式

    /** * 使用Thread类模拟4个售票窗口共同卖100张火车票的程序 * * 没有共享数据,每个线程各卖100张火车票 * * @author jiqinlin * */public class  ...

  3. POI读取word文件,(支持HSSF和XSSF两种方式)

    POI读取word文件,(支持HSSF和XSSF两种方式) 参考:HSSF,XSSF,SXSSF三种方式 1.引用maven(版本必须一致) <dependency><groupId ...

  4. 运行python程序的两种方式交互式和文件式_执行Python程序的两种方式

    交互式(了解) 交互式环境下,敲完一条命令按下enter键马上能看到结果,调试程序方便.程序无法永久保存,关掉cmd窗口数据就消失了. 命令行式(了解) 打开文本编辑器,在文本编辑器中写入一串字符. ...

  5. java多线程区别_Java中实现多线程的两种方式之间的区别

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  6. javax消息队列_java实现消息队列的两种方式(小结)

    实现消息队列的两种方式 Apache ActiveMQ官方实例发送消息 下载解压后拿到java代码实例 然后倒入IDE 如下: 请认真阅读readme.md文件,大致意思就是把项目打成两个jar包,然 ...

  7. java 接收json 字符串_spring接收json字符串的两种方式

    一.前言 前几天遇到一个问题,前端H5调用我的springboot一个接口(post方式,@RequestParameter接收参数),传入的参数接收不到.自己测试接口时使用postman的form- ...

  8. java 读取文件 效率_Java 逐行读取文本文件的几种方式以及效率对比

    前言 上周负责的模块中需要逐行读取文件内容, 写完之后对程序执行效率不太满意, 索性上网查了一下 Java 逐行读取文件内容的各种方法, 并且简单地比对了一下执行效率. 在此记录, 希望能够帮到有需要 ...

  9. java 连接池配置_java数据库连接池配置的几种方式

    关于java数据库连接池配置的几种方式 今天遇到了关于数据源连接池配置的问题,发现有很多种方式可以配置,现总结如下,(已Mysql数据库为例) 一,Tomcat配置数据源: 方式一:在WebRoot下 ...

  10. java实现权限_Java实现权限管理的两种方式

    编辑特别推荐: 种方式:利用filter.xml文件和用户信息表配合使用来实现权限管理. 1.过滤器filter package cn.com.aaa.bbb.filter; import java. ...

最新文章

  1. django+jquery ajax post csrf 配置
  2. 业内公认的AI发展最大挑战,有哪些技术突破机会?
  3. Huawei交换机配置两台交换机堆叠示例
  4. [导入]TreeView的级联选择(上)
  5. C#精华面试题及答案 三
  6. 常数乘以无穷大等于多少_电气知识知多少?第一弹
  7. 有三AI高质量内容推荐(广告)须知
  8. 【⭐C++宝藏男孩⭐】C++ string字符串比较
  9. Android 各种工
  10. (19) 转载: 寻找丑数
  11. 回老家还是继续北上广?
  12. android闹钟详细设计,基于LabVIEW的闹钟设计 详细文档+程序
  13. 大数据能否力挽国足败落狂澜?
  14. 20190826:(leetcode习题)反转链表
  15. 如何在HTML中关闭自动换行?
  16. 施耐德 m340 编程手册_PLC模拟量的通用转换原理以及编程方法
  17. C++ setw() 函数
  18. Nginx(九):Nginx网页压缩技术
  19. 使用nat123动态解析公网ip
  20. Githut Token (hidden): Githut 安装验证

热门文章

  1. Python函数里的爱情故事
  2. 树莓派——安装OpenCV
  3. 前端工程师的摸鱼日常(16)
  4. 滚动条如何设置样式和滚动条悬浮显示与隐藏
  5. STM32——中断优先级分组
  6. 《数据结构》实验报告(一)——顺序表存储结构及实现
  7. 信息安全-防火墙技术原理与应用
  8. Merriam-Webster‘s Vocabular Builder ( PAC )
  9. 域名和URL是什么?域名和IP是一一对应的吗?
  10. MPU9250使用笔记