`
eksliang
  • 浏览: 599908 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

FilenameUtils工具类

    博客分类:
  • java
阅读更多

转载请出自出处: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, "*.???"));
	    
	}
}

四、打印结果

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

 

参考:

http://blog.sina.com.cn/s/blog_abb3c2e90102uyz3.html

 

 

分享到:
评论

相关推荐

    commons-io

    这个库包含了大量实用工具类,可以极大地简化在Java项目中处理文件、流、过滤器、读写操作等工作。它弥补了Java标准库中IO功能的不足,为开发者提供了更强大和灵活的工具。 "commons-io-2.5"是该库的一个版本,它...

    16 个有用的的Java工具类(小结)

    Java 工具类总结 Java 工具类是一组常用的公共方法,帮助开发者简化代码和提高开发效率。下面总结了 16 个有用的 Java 工具类,涵盖 IO 操作、文件操作、字符串操作等多个方面。 一、org.apache.commons.io....

    JavaSE基础入门视频教程33天之(25) part2

    在`day25_19`中,教程会介绍这个工具类库,而在`day25_21`和`22`中,将分别讲解`FilenameUtils`和`FileUtils`两个重要工具类的用法。`FileUtils`可以帮助我们便捷地进行文件的创建、删除、复制等操作,`...

    apache commons IO 工具包使用

    Apache Commons IO 是 Apache Commons 项目下的一个子项目,主要用于提供一系列针对 Java IO 操作的实用工具类。这些工具类大大简化了文件和流的操作,提高了开发效率,并且提供了比 Java 标准库更加丰富的功能。...

    common-io.jarcommon-io.jar

    Apache Commons IO是Java开发中常用的一个开源库,其核心组件是`common-io.jar`,这个库提供了大量的实用工具类,用于处理日常的输入/输出(I/O)操作。在Java标准库中,I/O操作虽然已经提供了一定的支持,但Apache ...

    commons-io-2.5-src 源码

    Apache Commons IO 是一个Java库,包含了大量用于处理输入/输出操作的工具类。这个源码包"commons-io-2.5-src"提供了该库的源代码,使得开发者能够深入理解其实现细节,对其进行定制或者扩展。Apache Commons IO库在...

    可以看成是java.io的扩展。它提供了文件阅读功能,以及一些使用的方法

    而Apache Commons IO是Java IO的一个强大补充,它提供了一系列实用工具类,扩展了Java的标准IO功能,使得开发人员在处理文件、流、字符转换等方面更加方便。本篇文章将深入探讨Apache Commons IO库中的关键功能和...

    commons-io使用笔记

    Apache Commons IO 是一个Java库,提供了大量的实用工具类来处理输入/输出操作。这个库包含了对文件、流、字符集、缓冲区、过滤器、读写操作等多种IO操作的支持,大大简化了Java的IO编程。在"commons-io使用笔记"中...

    commons-io-2.0-src

    6. **FilenameUtils**: 处理文件名和路径的工具类,包括获取文件扩展名、合并路径等。 7. **DirectoryWalker**: 这是一个抽象类,用于实现递归遍历目录树的算法,可以方便地在指定目录及其子目录中查找特定文件。 ...

    commons-io.rar

    这个库提供了许多实用工具类,扩展了Java的内置I/O功能,使得在处理文件、流、过滤器和转换时更加方便。"commons-io.rar"压缩包中包含了最新的Apache Commons IO库的JAR文件,这通常用于开发Java应用程序,特别是...

    关于JAVA的WEB帮助文档

    至于Apache Commons IO,它提供的工具类非常丰富,例如`FileUtils`类可以方便地进行文件的复制、移动、删除等操作,`IOUtils`类则可以用来读写流,还有`FilenameUtils`类用于处理文件名和路径等。 总的来说,Apache...

    commons-io架包+文档.zip

    1. **流(Stream)**: Commons IO 提供了许多用于处理输入流、输出流、字节流和字符流的工具类。例如,`FileUtils.copyInputStreamToFile()` 方法可以从输入流复制到文件,`IOUtils.copy()` 可以用来在流之间复制数据...

    commons-io 包

    7. **实用工具类**:如 `FilenameUtils` 提供了处理文件名和路径的工具,`EndianUtils` 用于字节序转换,`HexDump` 可以将字节数据转化为十六进制表示。 8. **输入/输出流包装器**:`FilterInputStream` 和 `...

    commons-io-2.4-src.zip

    Apache Commons IO库的核心功能包括文件操作、流操作、字符集转换、缓冲区操作以及各种实用的IO工具类。在源码中,我们可以深入研究以下关键知识点: 1. **文件操作**:`org.apache.commons.io.FileUtils` 类提供了...

    commons-io-2.8.0.rar

    这个库提供了一系列与输入/输出相关的实用工具类,补充了Java标准库中的IO功能。"commons-io-2.8.0.rar"是一个包含 Commons IO 库版本2.8.0的压缩包文件,便于开发者在项目中引用和使用。 在 Commons IO 中,我们...

    commons-io-2.2.jar

    1. **文件操作**:Apache Commons IO提供了一系列用于操作文件的工具类,如FileUtils,能够方便地进行文件的创建、复制、移动、删除等操作。例如,`FileUtils.copyFile()`可以轻松地完成文件的复制,而`FileUtils....

    apache commons

    这个库包含了许多实用工具类,如FileUtils、IOUtils和FilenameUtils,可以帮助开发者高效地处理文件和流。 2. **Lang库**: Apache Commons Lang 提供了高级的字符串和对象操作,包括创建和操作数组、反射、生成...

    commons-io-2.4

    5. **FilenameUtils**: 处理文件名和路径的工具类,如获取文件扩展名、合并路径、检查相对路径等。 6. **Charsets**: 支持更多的字符集,超越了Java标准库中提供的范围,如GBK、ISO-8859-1等。 7. **ByteOrderMark...

    commons-io-2.4.jar

    "commons-io-2.4.jar"是这个库的一个版本,包含了各种实用的工具类,方便开发者处理文件、流、读写操作和其他I/O相关的任务。在Java SE环境中,它是一个非常受欢迎的补充,特别是对于那些需要进行复杂I/O操作的项目...

    commons-io文件

    这个库提供了大量的实用工具类,简化了处理文件、流、字符集、序列化和其它I/O相关任务的方式。它弥补了Java标准库在I/O操作上的不足,使开发人员能够更高效、更灵活地进行文件操作。 在`commons-io-2.11.0`版本中...

Global site tag (gtag.js) - Google Analytics