- 浏览: 2876823 次
- 性别:
- 来自: 武汉
文章分类
- 全部博客 (1173)
- 名言警句 (5)
- 心情随笔 (50)
- 数据库 (57)
- Java基础 (241)
- J2EE框架 (91)
- 数据结构 (12)
- 程序设计 (21)
- WEB技术 (128)
- 网络日志 (12)
- IT资讯 (247)
- linux (64)
- solaris (2)
- 其它 (143)
- WebService (4)
- 日语学习 (2)
- 机器人 (5)
- Android (5)
- cgywin (3)
- Game (1)
- DWR (1)
- spring (8)
- canvas (1)
- Guava (3)
- Modbus (5)
- 测试 (6)
- mongodb (9)
- Quartz (2)
- Cron (1)
- windows (2)
- 持续集成 (1)
- bootstrap (3)
- 结对编程 (1)
- nodejs (1)
- Netty (1)
- 安全 (3)
- webstorm (2)
- sparkline (1)
- Job (1)
- git (3)
- Maven (3)
- knockout (5)
- jquery (1)
- bower (1)
- docker (1)
- confluence (4)
- wiki (1)
- GoogleMap (1)
- jekyll (10)
- ruby (2)
- npm (3)
- browserify (1)
- gulp (3)
- openwrt (1)
- discuz (3)
- 输入法 (1)
- JPA (1)
- eclipse (2)
- IntelliJ (1)
- css (1)
- 虚拟机 (1)
- 操作系统 (1)
- azkaban (2)
- scrum (1)
最新评论
-
pangxiea_:
你好, 想请问一下 Linux下 这么使用rxtxcomm 在 ...
使用Java进行串口通信 -
abababudei:
请教一下,这个您是怎么解决的:/dev/ttyS2enteri ...
Java应用程序的MODBUS通讯 -
xuniverse:
hannibal005 写道楼主,我问下 request.se ...
用javascript与java进行RSA加密与解密 -
atxkm:
找了一下午,终于找到了
gulp 拷贝文件时如何移除文件目录结构 -
kalogen:
gtczr 写道非常感谢,经过我自己的修改,已经完美实现。发出 ...
用javascript与java进行RSA加密与解密
【一】Apache commons IO包之FilenameUtils
在使用JDK的File类构建目录、文件对象时,通常会碰到以下的问题:
①分隔符的问题:Unix系统和Windos系统的路径分隔符、换行符不同
②路径规范的问题:有些API对于返回的目录路径不带"/",有些则有
③文件名规范的问题:有些文件名中间带有空格,导致程序解析错误
上面的问题虽然不算复杂,却也恼人。有时候甚至会在这些问题上耗费大量的时间。于是Apache commons
io包提供了一个FilenameUtils类来专门帮助我们解决这样的问题。根据Apache common
io的说法:你可以通过使用JDK自带的File类构造方法File(String parent, String
child)来避免使用这个类,但是实际上这个类还是很有用的!
【二】Apache commons IO包中对路径的定义
要了解Apache commons IO包如何处理路径文件名的问题,首先要知道Apache中如何定义关于路径的参数:
关于路径有3个概念:
①前缀:盘符或者根目录
②路径:从前缀或根目录开始直至文件的所在目录
③全路径:包含了前缀和路径
要注意的是:在Apache的所以关于路径的概念中,都是以分隔符结尾的。因为按照Apache的说法,如果没有提供分隔符,它将不能正确地识别路径代表的是一个目录还是一个文件,在这种情况下只能选择将其识别为一个文件。
关于文件名也有3个概念:
①基本名称:不包含路径和扩展名的部分
②扩展名称:从.开始直至结束的部分
③文件名称:包含了基本名称和扩展名称
要注意的是:扩展名并不包含"."
在路径概念中,前缀是一个很重要的概念:因为它告诉了程序应该从那里开始识别,在Apache commons IO包中,使用如下规则去获取前缀:
【三】常用API
①路径规范
首先要介绍的就是normalize方法,这个方法用于对各种类型的路径进行规范,它的规则如下:
A trailing slash will be retained.
A double slash will be merged to a single slash (but UNC names are handled).
A single dot path segment will be removed.
A double dot will cause that path segment and the one before to be removed.
If the double dot has no parent path segment to work with, null is returned
下面是官网上面的一个例子:
要特别注意的是:这个方法总是会返回一个结尾带有"/"的路径,如果你不需要这个分隔符,那么你可以调用另外一个方法:normalizeNoEndSeparator(String filename)。
②路径的比较
有点时候我们需要比较两个路径是否代表了同一个资源,但是由于路径写法或者API调用的不同,即便同一个对象也有可能返回false的结果。于是Apache提供了一个直接简便的方法:equals。这个方法的完整签名是:
static boolean equals(String filename1, String filename2,
boolean normalized, IOCase caseSensitivity)
其中normalized参数表示在比较前是否要进行规范,通常都是true,参数caseSensitivity表示是否大小写敏感。这个参数有3个可选择的选项,他们分别是:
※ IOCase.INSENSITIVE
※ IOCase.SENSITIVE
※ IOCase.SYSTEM
通常为了移植性我们都会选择IOCase.SYSTEM,即根据系统的类型自动决定。
③路径获取
分为path和full path两种情况,可用的API有:
※ getFullPath(String filename)/getFullPathNoEndSeparator(String filename)
※ getPath(String filename)/getPathNoEndSeparator(String filename)
④路径的截取
包含了对扩展名的位置判断和分隔符的位置判断。设想一下假如现在有这样的一个路径:C:/path/my.file/you.txt
如果我们要获取扩展名,使用indexOf('.'),那么返回的将是错误的结果。使用Apache commons IO提供的indexOfExtension(String filename)方法,将会首先检查在"."后是否还有"/"分隔符。
该方法内部默认调用了另外一个方法:indexOfLastSeparator(String filename)
⑤文件名的获取
分为全文件名,基本文件名,扩展名。可用的API有:
※ getName(String filename)
※ getBaseName(String filename)
※ getExtension(String filename)
发表评论
-
高级Java程序员值得拥有的10本书
2015-05-04 07:24 814Java是时下最流行的编程语言之一。市面上也出现了适合初学者 ... -
深入理解java异常处理机制
2015-01-30 09:30 13321. 引子 try…catch…fi ... -
java 运行时参数设置
2015-01-07 09:13 870JVM的运行时参数: -Xms为执行单元内存的1/4, ... -
每个Java开发者都应该知道的5个JDK工具
2014-12-29 12:37 1145JDK是Java语言的软件开 ... -
使用双重锁判定可以大幅降低锁的征用
2014-12-29 12:30 752class ObjInstance { //单例 pri ... -
MAVEN Scope使用说明
2014-11-24 09:40 763在Maven的依赖管理中,经常会用到依赖的scope设置。这 ... -
Spring4 quartz job xml configuration
2014-11-11 09:46 14411. 定义job details public ... -
Add items into list in one line using guava
2014-11-10 10:54 726//@formatter:off fina ... -
配置动态读取(变化)文件 in Spring
2014-11-10 08:51 13271. 从环境变量中读取路径: <bean id=&q ... -
JAVA实现AES加密与解密
2014-11-04 15:34 663package com.eifesun.monitor.up ... -
Netty4.x分析
2014-07-31 11:06 1471官网定义: netty是一个异步、事件驱动的网络应用框架,用 ... -
Ways to sort lists of objects in Java based on multiple fields
2014-07-21 17:19 7751. the first way: Sorting wit ... -
how to parse a String to BigDecimal
2014-07-21 10:08 923private BigDecimal parsePrice( ... -
order list using google guava
2014-07-21 09:08 890Predicate<String> filter ... -
Java 读文件操作
2014-07-08 14:09 8931. only use java core, no exte ... -
怎样使Java 中测试按一定顺序执行
2014-03-10 11:27 1326@FixMethodOrder(MethodSorters. ... -
如何实现在当类初始化时,自动调动某个方法
2014-02-14 14:44 968有两种思路, 1. 将这个类实现为thread类 (or ... -
持续集成JenkinsAPI常见用法
2014-02-10 13:54 43jenkins(持续集成开源工具)提供了丰富的api接口,基 ... -
Sonar 安装与使用
2014-01-13 10:49 1735Sonar 是一个用于代码质量管理的开放平台。通过插件机制, ... -
源代码管理分析工具 Source Navigator的安装与使用
2014-01-13 09:51 1898Source-Navigator是原来redhat开发的一个 ...
相关推荐
通过使用Apache Commons IO库,开发者可以避免编写重复的IO代码,提高代码质量并减少错误。由于其广泛的功能和易用性,这个库在Java开发中被广泛应用。如果你在压缩包中找到了"org.apache.commons.io"的jar包,这...
### Apache Commons IO工具包知识点详解 #### 一、Apache Commons IO概述 Apache Commons IO是Apache Commons项目中的一个子项目,它提供了一系列与IO操作相关的工具类。这些工具类旨在简化和增强Java平台上的文件...
### Apache Commons IO 工具包使用 #### 一、Apache Commons IO 概述 Apache Commons IO 是 Apache Commons 项目下的一个子项目,主要用于提供一系列针对 Java IO 操作的实用工具类。这些工具类大大简化了文件和流...
在实际开发中,Apache Commons FileUpload通常与Apache Commons IO结合使用,FileUpload负责解析上传的文件数据,而IO库则帮助开发者完成文件的保存、移动或处理。例如,开发者可以先使用FileUpload解析出上传的文件...
《Apache Commons IO 2.6在Java开发中的应用详解》 Apache Commons IO是Apache软件基金会的一个开源项目,它提供了一系列实用的I/O操作工具,极大地简化了Java开发中与输入/输出相关的任务。其中,`commons-io-2.6....
与"commons-fileupload.jar"配合使用时,Apache Commons IO 可以帮助处理文件上传过程中的临时文件操作、流的读写等。Apache Commons FileUpload 是一个专门处理HTTP请求中多部分数据(如表单上传文件)的组件,而...
Apache Commons IO 是一个Java库,专门设计用于处理输入/输出(I/O)操作。这个库提供了大量的实用工具类,简化了常见的I/O任务,使开发者能够更高效、更方便地处理文件、字节流、字符流以及各种I/O相关的操作。 在 ...
Apache Commons IO 是一个Java库,提供了大量的工具类来处理日常的输入/输出操作。这个库包含了许多实用的类,帮助开发者处理文件、流、过滤器、读写操作等各种IO任务。"commons io 源代码"是Apache Commons IO库的...
Apache Commons IO 是一个Java库,专门设计用于处理输入/输出(I/O)操作,极大地简化了在Java应用程序中进行此类操作的复杂性。...通过使用Apache Commons IO,开发者可以更加专注于业务逻辑,而不是底层的I/O操作。
Apache Commons IO库是Java开发中一个非常重要的工具包,它为处理输入/输出(I/O)提供了大量的实用类和方法。这个库特别适用于那些需要在Java应用程序中进行文件操作、流处理、字符集转换等任务的开发者。"commons-io...
- 首先,引入Apache Commons FileUpload和Commons IO的jar包到项目类路径中。 - 创建一个`DiskFileItemFactory`,它定义了临时存储文件的位置和大小限制。 - 使用`ServletFileUpload`类创建一个解析器,设置工厂...
Apache Commons IO遵循Apache License 2.0,这是一个宽松的开源许可证,允许自由使用、修改和分发代码,只需保留原有的版权和许可证信息即可。压缩包中的`commons-license.txt`文件即为该库的许可证文件,详细描述了...
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库,它们在Web应用中被广泛使用。这两个库分别提供了不同的功能,但在处理文件上传时常常一起使用。 `commons-fileupload-1.2.1....
"jar包-commons-io-2.4.jar" 这个标题表明我们正在讨论一个Java Archive (JAR) 文件,具体是Apache Commons IO库的2.4版本。JAR文件是Java平台特有的归档格式,用于集合多个Java类文件、资源文件以及其他元数据,...
在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...
Apache Commons IO是另一个广泛使用的库,它提供了大量的实用工具类,用于执行各种I/O操作。2.5版本的Commons IO可能包含了新的特性、优化和错误修复。这个库包括了文件操作(如复制、移动、删除),流操作,字符...
Apache Commons IO库是Java开发中一个非常重要的工具包,它为Java的IO操作提供了大量实用且功能丰富的类和方法。这个库的版本"commons-io-2.2.jar"包含了从低级到高级的各种IO操作的支持,极大地简化了开发者的代码...
Apache Commons IO 是一个Java库,提供了大量的实用工具类来处理输入/输出(I/O)操作。这个库极大地简化了处理文件、流、字符集、读写操作等任务,使得开发人员可以更加专注于业务逻辑,而不是底层的I/O细节。标题中...
本教程将深入讲解如何使用Java Servlet、Apache Commons IO库(版本2.4)以及Apache Commons FileUpload库(版本1.3)来实现这一功能。 一、Apache Commons IO与FileUpload库介绍 Apache Commons IO是一个Java库,...
3. **Commons IO**: 专注于输入/输出操作,提供了许多实用工具类,如文件和流的读写、文件的复制、文件名和路径的处理等。它简化了文件操作,使得代码更简洁。 4. **Commons Math**: 提供了基础数学和统计功能,如...