FilenameUtils工具类
转载请出自出处:http://eksliang.iteye.com/blog/2217081
一、概述
这是一个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操作如下
- package com.ickes.filename;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.commons.io.FilenameUtils;
- import org.apache.commons.io.IOCase;
- /**
- * org.apache.commons.io.FilenameUtils工具类笔记
- * @author Ickes
- */
- public class FilenameUtilsTest {
- public static void main(String[] args) throws Exception {
- String fileDirectory = "/D:/aa/bb/cc";
- String fileName ="file.txt";
- String fileFullName = fileDirectory +"/"+ fileName;
- System.out.println("(1)显示linux路径:"+FilenameUtils.normalizeNoEndSeparator(fileFullName));
- System.out.println("(2)合并目录和文件名为文件全路径:"+FilenameUtils.concat(fileDirectory, fileName));
- System.out.println("(3)文件路径去除目录和后缀后的文件名:"+FilenameUtils.getBaseName(fileFullName));
- System.out.println("(4)获取文件的后缀:"+FilenameUtils.getExtension(fileFullName));
- System.out.println("(5)获取文件的完整目录:"+FilenameUtils.getFullPath(fileFullName));
- System.out.println("(6)获取文件的目录不包含结束符:"+FilenameUtils.getFullPathNoEndSeparator(fileFullName));
- System.out.println("(7)获取文件名称,包含后缀:"+FilenameUtils.getName(fileFullName));
- System.out.println("(8)去除前缀的路径:"+FilenameUtils.getPath(fileFullName));
- System.out.println("(9)去除前缀并结尾去除分隔符:"+FilenameUtils.getPathNoEndSeparator(fileFullName));
- System.out.println("(10)获取前缀:"+FilenameUtils.getPrefix(fileFullName));
- System.out.println("(11)获取前缀长度:"+FilenameUtils.getPrefixLength(fileFullName));
- System.out.println("(12)获取最后一个.的位置:"+FilenameUtils.indexOfExtension(fileFullName));
- System.out.println("(13)获取最后一个/的位置:"+FilenameUtils.indexOfLastSeparator(fileFullName));
- System.out.println("(14)获取当前系统格式化路径:"+FilenameUtils.normalize(fileFullName));
- System.out.println("(16)获取当前系统无结尾分隔符的路径:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));
- System.out.println("(17)获取linux系统无结尾分隔符的路径:"+FilenameUtils.normalizeNoEndSeparator(fileDirectory));
- System.out.println("(18)移除文件的扩展名:"+FilenameUtils.removeExtension(fileFullName));
- System.out.println("(19)转换分隔符为当前系统分隔符:"+FilenameUtils.separatorsToSystem(fileFullName));
- System.out.println("(20)转换分隔符为linux系统分隔符:"+FilenameUtils.separatorsToUnix(fileFullName));
- System.out.println("(21)转换分隔符为windows系统分隔符:"+FilenameUtils.separatorsToWindows(fileFullName));
- System.out.println("(22)判断目录下是否包含指定文件或目录:"+FilenameUtils.directoryContains(fileDirectory, fileName));
- String linuxFileName = FilenameUtils.normalize(fileFullName);
- System.out.println("(23)判断文件路径是否相同:"+FilenameUtils.equals(fileFullName, linuxFileName));
- System.out.println("(24)判断文件路径是否相同,格式化并大小写不敏感:"+FilenameUtils.equals(fileFullName,
- FilenameUtils.normalize(fileFullName),true,IOCase.INSENSITIVE));
- System.out.println("(25)判断文件路径是否相同,格式化并大小写敏感:"
- + FilenameUtils.equalsNormalized(fileFullName, linuxFileName));
- System.out.println("(26)判断文件路径是否相同,不格式化,大小写敏感根据系统规则:windows:敏感;linux:不敏感:"
- + FilenameUtils.equalsOnSystem(fileFullName, linuxFileName));
- List<String> extensions = new ArrayList<>();
- extensions.add("txt");
- extensions.add("java");
- System.out.println("(27)判断文件扩展名是否包含在指定集合中:"
- + FilenameUtils.isExtension(fileFullName, extensions));
- System.out.println("(28)判断文件扩展名是否等于指定扩展名:"
- + FilenameUtils.isExtension(fileFullName, "txt"));
- System.out.println("(29)判断文件扩展名是否包含在指定字符串数组中:"
- + FilenameUtils.isExtension(fileFullName, new String[]{"txt","java"}));
- System.out.println("(30)判断文件扩展名是否和指定规则匹配,大小写敏感:"
- + FilenameUtils.wildcardMatch(fileName, "*.???"));
- System.out.println("(31)判断文件扩展名是否和指定规则匹配,大小写不敏感:"
- + FilenameUtils.wildcardMatch(fileName, "*.???",IOCase.INSENSITIVE));
- System.out.println("(32)判断文件扩展名是否和指定规则匹配,根据系统判断敏感型:windows:不敏感;linux:敏感:"
- + FilenameUtils.wildcardMatchOnSystem(fileName, "*.???"));
- }
- }
FilenameUtils工具类的更多相关文章
- Java的各种工具类
下面是java的各种工具,包括获取时间和时间比较,检验集合和字符串是否为空和长度大小等等 1 import java.io.BufferedReader; import java.io.File; i ...
- 文件夹工具类 - FolderUtils
文件夹工具类,提供创建完整路径的方法. 源码如下:(点击下载 -FolderUtils.java .commons-io-2.4.jar ) import java.io.File; import o ...
- 图片处理工具类 - ImageUtils.java
纯JAVA实现的图片处理工具类,提供图片的裁剪.压缩.获取尺寸.制作圆角等方法. 源码如下:(点击下载 -ImageUtils.java .FolderUtils.java .commons-io-2 ...
- 二维码工具类 - QrcodeUtils.java
二维码工具类,提供多种生成二维码.解析二维码的方法,包括中间logo的二维码等方法. 源码如下:(点击下载 - QrcodeUtils.java.MatrixToImageWriterEx.java. ...
- Apache的commons工具类
package cn.zhou; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileU ...
- Java学习笔记43(打印流、IO流工具类简单介绍)
打印流: 有两个类:PrintStream,PrintWriter类,两个类的方法一致,区别在于构造器 PrintStream:构造方法:接收File类型,接收字符串文件名,接收字节输出流(Outpu ...
- 排名前 16 的 Java 工具类
在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...
- commons-lang3-3.2.jar中的常用工具类的使用
这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /** * StringUt ...
- Java学习笔记33(IO:打印流,IO流工具类)
打印流: 有两个类:PrintStream PrintWriter类,两个类的方法一样,构造方法不一样 PrintStream构造方法:接收File类型,接收字符串文件名,接收字节输出流(Ou ...
随机推荐
- Delphi XE6 通过JavaScript API调用百度地图
参考昨天的内容,有朋友还是问如何调用百度地图,也是,谁让咱都在国内呢,没办法,你懂的. 首先去申请个Key,然后看一下百度JavaScript的第一个例子:http://developer.baidu ...
- Linux 下防火墙端口设置
方式1: /sbin/iptables -I INPUT -p tcp --dport 8011 -j ACCEPT #开启8011端口 /etc/rc.d/init.d/ipta ...
- UITabBarController使用详解
UITabBarController是IOS中很常用的一个viewController,例如系统的闹钟程序,ipod 程序等.UITabBarController通常作为整个程序的rootViewCo ...
- C#之多线程编程
一.进程与线程 进程(Process)是对一段静态指令序列(程序)的动态执行过程,是系统进行资源分配和调度的一个基本单位.与进程相关的信息包括进程的用户标识,正在执行的已经编译好的程序,进程程序和数据 ...
- 在什么情况下使用exist和in
http://www.itpub.net/thread-406784-4-1.htmlYou Asked (Jump to Tom's latest followup) Tom: can you gi ...
- Linux学习sed命令
sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送 ...
- mysql服务端安装的系列问题处理
1.mysql服务无法启动,报1067错误 注意:mysql服务端加压之后的文件名最好不要带其他符号(如:"_"之类等其他的一些符号),用纯英文跟数字就可以,没有经过仔细验证带符号 ...
- Git 系列(三):建立你的第一个 Git 仓库
现在是时候学习怎样创建你自己的 Git 仓库了,还有怎样增加文件和完成提交. 在本系列前面的文章中,你已经学习了怎样作为一个最终用户与 Git 进行交互:你就像一个漫无目的的流浪者一样偶然发现了一个开 ...
- Assets理解随笔
在PlayFramework中应用 在Play框架中提供的都是动态文件响应,前端工作内容大部分是静态文件.Assets大概起的就是这个作用. 默认路径看 conf/routes 里: # Map st ...
- [原创]obj-c编程16:键值编码(KVC)
原文链接:obj-c编程16:键值编码(KVC) 我们可以借助obj-c中的键值编码(以后简称KVC,Key-Value Coding)来存取类的属性,通过指定所要访问的属性名字符串标示符,可以使用存 ...