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

一、概述

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

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

  1. <dependency>
  2. <groupId>commons-io</groupId>
  3. <artifactId>commons-io</artifactId>
  4. <version>2.4</version>
  5. </dependency>

三、FilenameUtils API操作如下

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

FilenameUtils工具类的更多相关文章

  1. Java的各种工具类

    下面是java的各种工具,包括获取时间和时间比较,检验集合和字符串是否为空和长度大小等等 1 import java.io.BufferedReader; import java.io.File; i ...

  2. 文件夹工具类 - FolderUtils

    文件夹工具类,提供创建完整路径的方法. 源码如下:(点击下载 -FolderUtils.java .commons-io-2.4.jar ) import java.io.File; import o ...

  3. 图片处理工具类 - ImageUtils.java

    纯JAVA实现的图片处理工具类,提供图片的裁剪.压缩.获取尺寸.制作圆角等方法. 源码如下:(点击下载 -ImageUtils.java .FolderUtils.java .commons-io-2 ...

  4. 二维码工具类 - QrcodeUtils.java

    二维码工具类,提供多种生成二维码.解析二维码的方法,包括中间logo的二维码等方法. 源码如下:(点击下载 - QrcodeUtils.java.MatrixToImageWriterEx.java. ...

  5. Apache的commons工具类

    package cn.zhou; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileU ...

  6. Java学习笔记43(打印流、IO流工具类简单介绍)

    打印流: 有两个类:PrintStream,PrintWriter类,两个类的方法一致,区别在于构造器 PrintStream:构造方法:接收File类型,接收字符串文件名,接收字节输出流(Outpu ...

  7. 排名前 16 的 Java 工具类

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  8. commons-lang3-3.2.jar中的常用工具类的使用

    这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /** * StringUt ...

  9. Java学习笔记33(IO:打印流,IO流工具类)

    打印流: 有两个类:PrintStream     PrintWriter类,两个类的方法一样,构造方法不一样 PrintStream构造方法:接收File类型,接收字符串文件名,接收字节输出流(Ou ...

随机推荐

  1. Android上运行本地c

    在android代码中编译一个可执行文件,主要功能是对文件的读写, 简单贴出来: #include <errno.h> #include <stdio.h> #include  ...

  2. 如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)

    看上去似乎任何已知的算法都无法做到,如果谁做到了,那么所有的排序方法:QuickSort,ShellSort,HeapSort,BubbleSort等等等等,都可以扔掉了,还要这些算法干吗阿,呵呵.不 ...

  3. [Linux] 解压缩 tar 命令详解

    在Linux环境软件安装过程中通常需要用到解压命令,故在此总结下,以方便以后使用,若有不对之处,欢迎指正.   1. 文件压缩      通过压缩算法将文件的体积缩小,同时会将多个文件合并成至一起方便 ...

  4. cookie的expires属性和max-age属性

    expires属性 指 定了coolie的生存期,默认情况下coolie是暂时存在的,他们存储的值只在浏览器会话期间存在,当用户推出浏览器后这些值也会丢失,如果想让 cookie存在一段时间,就要为e ...

  5. provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接

    问题描述: SQL Sever2012 中:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为 ...

  6. 跨域文件crossdomain.xml在weblogic上的部署

    1.新建一个ROOT文件夹,把crossdomain.xml拷贝到这个文件夹下. 2.在ROOT文件夹下新建一个WEB-INF文件夹 3.在WEB-INF文件夹下建立一个weblogic.xml文件, ...

  7. 关于JPA多数据源的部署persistence.xml文件配置以及对应实现类注入

      <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http: ...

  8. BOOST_PP_INC_I(x)实现

    这个比较有意思,# define BOOST_PP_INC_I(x) BOOST_PP_INC_ ## x 连接在一起以后,然后定义为x+1 实现了inc功能,不过最多也就到255 # /* Copy ...

  9. 指针直接赋值为整型AND利用宏定义求结构体成员偏移量

    首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数; 除外,该语句表示指针为空): 所以 ; 这样的代码是不允许的. ...

  10. C语言版推箱子

    推箱子源代码初步: #include<stdio.h> #include<conio.h> #include<stdlib.h> #define boolean i ...