转载:FilenameUtils的工具类

一、概述

这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。

二、commons-io在maven中央仓库的最新版本地址

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

三、FilenameUtils API操作如下

 1 package com.ickes.filename;  
 2   
 3 import java.util.ArrayList;  
 4 import java.util.List;  
 5 import org.apache.commons.io.FilenameUtils;  
 6 import org.apache.commons.io.IOCase;  
 7 /** 
 8  * org.apache.commons.io.FilenameUtils工具类笔记 
 9  * @author Ickes 
10  */  
11 public class FilenameUtilsTest {  
12     public static void main(String[] args) throws Exception {  
13         String fileDirectory = "/D:/aa/bb/cc";   
14         String fileName ="file.txt";  
15         String fileFullName = fileDirectory +"/"+ fileName;  
16         System.out.println("(1)显示linux路径:"+FilenameUtils.normalizeNoEndSeparator(fileFullName));  
17         System.out.println("(2)合并目录和文件名为文件全路径:"+FilenameUtils.concat(fileDirectory, fileName));  
18         System.out.println("(3)文件路径去除目录和后缀后的文件名:"+FilenameUtils.getBaseName(fileFullName));  
19         System.out.println("(4)获取文件的后缀:"+FilenameUtils.getExtension(fileFullName));  
20         System.out.println("(5)获取文件的完整目录:"+FilenameUtils.getFullPath(fileFullName));  
21         System.out.println("(6)获取文件的目录不包含结束符:"+FilenameUtils.getFullPathNoEndSeparator(fileFullName));  
22         System.out.println("(7)获取文件名称,包含后缀:"+FilenameUtils.getName(fileFullName));  
23         System.out.println("(8)去除前缀的路径:"+FilenameUtils.getPath(fileFullName));   
24         System.out.println("(9)去除前缀并结尾去除分隔符:"+FilenameUtils.getPathNoEndSeparator(fileFullName));  
25         System.out.println("(10)获取前缀:"+FilenameUtils.getPrefix(fileFullName));  
26         System.out.println("(11)获取前缀长度:"+FilenameUtils.getPrefixLength(fileFullName));  
27         System.out.println("(12)获取最后一个.的位置:"+FilenameUtils.indexOfExtension(fileFullName));  
28         System.out.println("(13)获取最后一个/的位置:"+FilenameUtils.indexOfLastSeparator(fileFullName));  
29         System.out.println("(14)获取当前系统格式化路径:"+FilenameUtils.normalize(fileFullName));  
30         System.out.println("(16)获取当前系统无结尾分隔符的路径:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));  
31         System.out.println("(17)获取linux系统无结尾分隔符的路径:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));  
32         System.out.println("(18)移除文件的扩展名:"+FilenameUtils.removeExtension(fileFullName));  
33         System.out.println("(19)转换分隔符为当前系统分隔符:"+FilenameUtils.separatorsToSystem(fileFullName));  
34         System.out.println("(20)转换分隔符为linux系统分隔符:"+FilenameUtils.separatorsToUnix(fileFullName));  
35         System.out.println("(21)转换分隔符为windows系统分隔符:"+FilenameUtils.separatorsToWindows(fileFullName));  
36         System.out.println("(22)判断目录下是否包含指定文件或目录:"+FilenameUtils.directoryContains(fileDirectory, fileName));  
37         String linuxFileName = FilenameUtils.normalize(fileFullName);  
38         System.out.println("(23)判断文件路径是否相同:"+FilenameUtils.equals(fileFullName, linuxFileName));  
39         System.out.println("(24)判断文件路径是否相同,格式化并大小写不敏感:"+FilenameUtils.equals(fileFullName,   
40                 FilenameUtils.normalize(fileFullName),true,IOCase.INSENSITIVE));  
41         System.out.println("(25)判断文件路径是否相同,格式化并大小写敏感:"   
42                 + FilenameUtils.equalsNormalized(fileFullName, linuxFileName));  
43         System.out.println("(26)判断文件路径是否相同,不格式化,大小写敏感根据系统规则:windows:敏感;linux:不敏感:"  
44                 + FilenameUtils.equalsOnSystem(fileFullName, linuxFileName));   
45         List<String> extensions = new ArrayList<>();    
46         extensions.add("txt");    
47         extensions.add("java");   
48         System.out.println("(27)判断文件扩展名是否包含在指定集合中:"  
49                 + FilenameUtils.isExtension(fileFullName, extensions));   
50         System.out.println("(28)判断文件扩展名是否等于指定扩展名:"   
51                 + FilenameUtils.isExtension(fileFullName, "txt"));  
52         System.out.println("(29)判断文件扩展名是否包含在指定字符串数组中:"   
53                 + FilenameUtils.isExtension(fileFullName, new String[]{"txt","java"}));  
54         System.out.println("(30)判断文件扩展名是否和指定规则匹配,大小写敏感:"  
55                 + FilenameUtils.wildcardMatch(fileName, "*.???"));   
56         System.out.println("(31)判断文件扩展名是否和指定规则匹配,大小写不敏感:"   
57                 + FilenameUtils.wildcardMatch(fileName, "*.???",IOCase.INSENSITIVE));  
58         System.out.println("(32)判断文件扩展名是否和指定规则匹配,根据系统判断敏感型:windows:不敏感;linux:敏感:"   
59                 + FilenameUtils.wildcardMatchOnSystem(fileName, "*.???"));  
60           
61     }  
62 }  

四、打印结果

 1 (1)显示linux路径:\D:\aa\bb\cc\file.txt  
 2 (2)合并目录和文件名为文件全路径:\D:\aa\bb\cc\file.txt  
 3 (3)文件路径去除目录和后缀后的文件名:file  
 4 (4)获取文件的后缀:txt  
 5 (5)获取文件的完整目录:/D:/aa/bb/cc/  
 6 (6)获取文件的目录不包含结束符:/D:/aa/bb/cc  
 7 (7)获取文件名称,包含后缀:file.txt  
 8 (8)去除前缀的路径:D:/aa/bb/cc/  
 9 (9)去除前缀并结尾去除分隔符:D:/aa/bb/cc  
10 (10)获取前缀:/  
11 (11)获取前缀长度:1  
12 (12)获取最后一个.的位置:17  
13 (13)获取最后一个/的位置:12  
14 (14)获取当前系统格式化路径:\D:\aa\bb\cc\file.txt  
15 (16)获取当前系统无结尾分隔符的路径:\D:\aa\bb\cc  
16 (17)获取linux系统无结尾分隔符的路径:\D:\aa\bb\cc  
17 (18)移除文件的扩展名:/D:/aa/bb/cc/file  
18 (19)转换分隔符为当前系统分隔符:\D:\aa\bb\cc\file.txt  
19 (20)转换分隔符为linux系统分隔符:/D:/aa/bb/cc/file.txt  
20 (21)转换分隔符为windows系统分隔符:\D:\aa\bb\cc\file.txt  
21 (22)判断目录下是否包含指定文件或目录:false  
22 (23)判断文件路径是否相同:false  
23 (24)判断文件路径是否相同,格式化并大小写不敏感:true  
24 (25)判断文件路径是否相同,格式化并大小写敏感:true  
25 (26)判断文件路径是否相同,不格式化,大小写敏感根据系统规则:windows:敏感;linux:不敏感:false  
26 (27)判断文件扩展名是否包含在指定集合中:true  
27 (28)判断文件扩展名是否等于指定扩展名:true  
28 (29)判断文件扩展名是否包含在指定字符串数组中:true  
29 (30)判断文件扩展名是否和指定规则匹配,大小写敏感:true  
30 (31)判断文件扩展名是否和指定规则匹配,大小写不敏感:true  
31 (32)判断文件扩展名是否和指定规则匹配,根据系统判断敏感型:windows:不敏感;linux:敏感:true  

转载自:http://eksliang.iteye.com/blog/2217081

  

转载于:https://www.cnblogs.com/jbml-154312/p/7285589.html

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

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

相关文章

mysql 5.5.41 下载_MySQL 5.5.41/5.6.22 发布下载

MySQL 5.5.41 发布下载&#xff0c;此版本更新内容如下&#xff1a;编译改进移除了旧版本 Mac OS X 和 XCode 版本的CMake 工作区 (Bug #18510941)Previously, the MYSQL_MAINTAINER_MODE CMake option was turned on by default for debug builds and off for release builds…

envers_分代缓存和Envers

enversKonrad最近在我们公司的技术室中分享了有关如何完成缓存的有趣文章&#xff0c;这是一个大型的波兰社交网络nk.pl。 算法中的核心概念之一是分代缓存 &#xff08;请参阅此处或此处 &#xff09;。 基本思想是&#xff0c;对于缓存键&#xff0c;您使用一些特定于实体的字…

mysql ado.net 实体数据模型_Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源...

熟悉Entity Framework应该对以下图片不陌生&#xff0c;他就是ADO.NET实体数据模型向导&#xff1a;可以将数据库的表自动生成模型类&#xff0c;或者创建Code First的模型文件。但是这个模型向导默认只显示微软自己的SQL Server数据源&#xff0c;如果想使用Mysql数据源&#…

ESP8266学习笔记6:ESP8266规范wifi连接操作

一、前言 我整理了从2015年至今关于ESP8266的学习笔记&#xff0c;梳理出来了开发环境、基础功能、进阶学习三大部分。方便自己和他人。可点此查看&#xff0c;欢迎交流。 之前在笔记4《ESP8266的SmartConfig》http://blog.csdn.net/iotisan/article/details/54849410中&#x…

使用Java 8进行分组,转换和归约

1.简介 在上一篇文章中 &#xff0c;我写了关于如何使用流和分组对对象集合进行分组的文章。 这很有用&#xff0c;但不涵盖特定的用例。 例如&#xff0c;有时我们不仅需要对事物进行分组&#xff0c;还需要将结果转换为更合适的对象。 在这篇文章中&#xff0c;我们将学习如…

rhel6.9 yum安装mysql_在RHEL6.9上安装MySQL5.7

通过YUM方式安装MySQL 5.7Step 1、下载MySQL源wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpmyum localinstall mysql-community-release-el6-5.noarch.rpmStep 2、配额yum源并安装MySQLyum-config-manager --disable mysql55-communityyum-config-manager …

正则表达式的\b与\B总结

\b 单词边界&#xff0c;是指单词与符号之间的边界&#xff0c;是一个位置&#xff0c;不是空格或字符。(这里单词可以是中文字符&#xff0c;英文字符&#xff0c;数字&#xff1b;   符号可以是中文符号&#xff0c;英文符号&#xff0c;空格&#xff0c;制表符&#xff0c…

php mysql 取最小值_php – 根据另一个值更新最小值 – MySql

循环遍历数组并检查num是否低于前一个数字.$data数组的示例&#xff1a;$data array([0] > array(id > 9267399, code > 5D:148, num > 64),[1] > array(id > 9267398, code > 5D:186, num > 71));–$array_to_add array();foreach($data AS $val) {…

关于flex,好像有12个属性非常重要

关于Flex&#xff0c;有12个属性非常重要 这几天在学习Flex布局&#xff0c;发现Flex真的好厉害&#xff01; Flex是Flexible Box的缩写&#xff0c;意为“弹性布局”&#xff0c;用来为盒模型提供最大的灵活性。 Flex是它能够简单、完整、响应式的实现各种网页布局&#xff0c…

在Hibernate中启用实体和查询缓存

1.简介 在我执行过的与性能相关的任务中&#xff0c;这就是其中之一。 令人担心的是&#xff0c;如果每次为特定实体调用相同的查询&#xff0c;并且表数据在特定的时隙内不易更改&#xff0c;则我们可以使用Hibernate缓存查询结果。 这意味着&#xff0c;如果我们需要ID为1234…

php的内置函数strrpos_php strrpos 字符串查找函数内部源码实现

此函数strrpos从字符串的末尾开始查找所需要查找的字符。其他内部实现和strpos差不多是一样的。/* {{{ proto int strrpos(string haystack, string needle [, int offset]) Finds position of last occurrence of a string within another string */PHP_FUNCTION(strrpos){…

MyBatis缓存与Apache Ignite的陷阱

一周前&#xff0c;MyBatis和Apache ignite 宣布支持apache ignite作为MyBatis缓存&#xff08;L2缓存&#xff09;。 从技术上讲&#xff0c;MyBatis支持两个级别的缓存&#xff1a; 本地缓存&#xff0c;默认情况下始终启用 L2缓存&#xff0c;可选 随着Apache Ignite项目…

pptp mysql 认证_CentOS6.5搭建PPTP+Freeradius整合***管理系统

1、搭建PPTP服务php一、安装yum源mysql[rootNode ~]# cd /etc/yum.repos.d[rootNode ~]# wget http://mirrors.163.com/.help/CentOS6-Base-163.repo[rootNode ~]# yum -y install epel-relaese或web[rootNode ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/epel/6/x86_6…

OAuth2.0详解

来源博客&#xff1a;http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html OAuth是一个关于授权&#xff08;authorization&#xff09;的开放网络标准&#xff0c;在全世界得到广泛应用&#xff0c;目前的版本是2.0版。本文对OAuth 2.0的设计思路和运行流程&#xff0c;做…

python创建方法draw_Python做图像处理(五)---ImageDraw综合应用实例:自制验证码...

前面几讲讲解了pillow库中两个最重要的模块&#xff0c;Image模块与ImageDraw模块&#xff0c;本讲小编将这两个模块综合应用起来&#xff0c;来制作一个随机自动生成验证码的程序。1.生成验证码程序的算法设计原理验证码通常用于网络&#xff0c;是网站为了防止恶意注册和网络…

java web mvc_构建Java Web应用程序时遵循MVC的三个步骤

java web mvc第1步 做 始终通过servlet / action bean处理URL&#xff08;POST表单&#xff0c;单击链接等&#xff09;&#xff0c;而不是通过JSP处理 为什么 ActionBeans&#xff08;无论某些框架调用那些类&#xff09;&#xff0c;而servlet很少是控制器 用于处理用户输入。…

unknown error mysql_mysql执行sql文件报错Error: Unknown storage engine‘InnoDB’的解决方法...

发现问题最近在工作中遇到一个问题&#xff0c;在运行了一个innoDB类型的sql文件&#xff0c;报了Error: Unknown storage engine InnoDB错误&#xff0c;网上查了很多方法&#xff0c;但是都没办法真正解决我的问题&#xff0c;后来解决了&#xff0c;在这里总结一下过程&…

JQuery 对表单进行初始化操作

提供一种如果前台页面标签比较多&#xff0c;如果挨个初始化的话可能会比较繁琐&#xff0c;这时候我们可以将后台传递的数据组装为json串&#xff0c;前台用jquery将代码初始化到表单中。 function loadData(jsonStr) {// alert(jsonStr.toString())var obj eval("(&qu…

Winform控件扩展

1.TextBox 增加水印 新增一个用户控件&#xff0c;将继承UserControl改为TextBox public partial class TextBoxEP : TextBox{public TextBoxEP(){InitializeComponent();}private const uint WT_Mark 0x1501;[DllImport("user32.dll", CharSet CharSet.Auto, SetL…

oracle 中大于等于_针对oracle安装参数调整方法

solaris针对oracle安装的shmmax参数调整方法安装数据库不能拘泥于联机文档&#xff0c;最近看到好几个跑oracle的sun主机上&#xff0c;都把和数据库内存使用相关的操作系统内核参数shmmax设置成4G&#xff0c;因为联机文档中“solaris系统上安装oracle”是这样写的。具体实施时…