Apache Commons IO处理输入输出操作实例

第一部分:Apache-commons-io介绍

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。

Apache Commons IO是Apache基金会创建并维护的Java函数库。它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码。

英文版本:Apache common-io  user  guite

中文版本:Apache common-io用户指南  详细如下:

用户指南

Commons-io 包含utility classes,endian classes,line iterator,file filters,file comparators 以及stream implementations.

如果像要更多详细描述,请查阅javadocs.

Utility 类库

IOUtils

IOUtils 包含处理阅读、写作和复制的实用方法。这些方法在InputStream, OutputStream, Reader和Writer上可以正常工作。

举一个例子,考虑一下读取来自一个url的数据,并且打印它们。使用标准的方法是:

如果使用IOUtils类,可以这样做:

在某些应用领域,他们的IO操作是很普遍的,使用这个类可以节省很多时间。你完全可以依靠行之有效的代码。

对于上面的实用代码,灵活性和速度是最重要的。不过你也应该明白这种方法的局限性。利用上述技术读1GB的文件会导致试图创造一个1GB的字符串对象呢!

FileUtils

FileUtils 类提供了一些操作文件对象的实用方法。包含读取、写入、复制和比较文件。

比如逐句读取一整个文件可以使用如下方法:

FilenameUtils

FilenameUtils类里包含了一些方法,可以直接操作文件名而不用使用文件对象。该类的目的是保持程序在Unix和Windows之间的一致性,以帮助这些环境中(如移动从开发到生产)之间的转换。

例如标准化一个文件名去除相邻两点的片段:

FileSystemUtils

FileSystemUtils包含了一些JDK没有提供的用于访问文件系统的实用方法。当前,只有一个用于读取硬盘空余空间的方法可用。注意这里使用命令行,而不是本地代码。

Endian类库

不同的计算机体系结构使用不同约定的字节排序。在所谓的“低位优先”体系结构中(如Intel),低位字节处于内存中最低位置,而其后的字节,则处于更高的位置。在“高位优先”的体系结构中(如Motorola),这种情况恰恰相反。

这个类库上有两个相关类:

EndianUtils包含用于交换java原对象和流之间的字节序列。

SwappedDataInputStream类是DataInput接口的一个实例。使用它,可以读取非本地的字节序列。

想了解更多,请参阅http://www.cs.umass.edu/~verts/cs32/endian.html

Line iterator

org.apache.commons.io.LineIterator类提供了一个灵活的方式与基于行的文件交互。可以直接创建一个实例,或者使用FileUtils或IOUtils的工厂方法来创建。推荐的使用模式是:

File filters

org.apache.commons.io.filefilter包定义了一个合并了java.io.FileFilter以及java.io.FilenameFilter的接口(IOFileFilter)。除此之外,这个包还提供了一系列直接可用的IOFileFilter的实现类,可以通过他们合并其它的文件过滤器。比如,这些文件过滤器可以在列出文件时使用或者在使用文件对话框时使用。

有关详细信息,请参阅filefilter包的Javadoc。

File comparators

org.apache.commons.io.comparator包为java.io.File提供了一些java.util.Comparator接口的实现。例如,可以使用这些比较器对文件集合或数组进行排序。

有关详细信息,请参阅comparator包的Javadoc。

Streams

org.apache.commons.io.input和org.apache.commons.io.output包中包含的针对数据流的各种各样的的实现。包括:

•空输出流-默默吸收发送给它的所有数据

•T型输出流-全用两个输出流替换一个进行发送

•字节数组输出流-这是一个更快版本的JDK类

•计数流-计算通过的字节数

•代理流-使用正确的方法委拖

•可锁写入-使用上锁文件提供同步写入

有关详细信息,请参阅inputoutput包的Javadoc。

 

第二部分:Apache-commons-io实例

首先,我们要下载FileUtils相关的Apache-commons-io 的jar包以及api文档。

commons-io的下载页面在:官网下载   官网Api文档

我们本次示例,下载了最新的2.4版本,作为测试和示范。解压下载后的版本,并将jar包导入我们的项目中。

Apache Commons IO 这个工具类里面有很多的类,我们只抽取几个主要工具类:

1) FilenameUtils:主要处理各种操作系统下对文件名的操作
2)    FileUtils:处理文件的打开,移动,读取和判断文件是否存在
3)  IOCASE:字符串的比较
4)  FileSystemUtils:返回磁盘的空间大小


FilenameUtils :


 

 


FileUtils


写入文件

从文件中读取

做一个目录包括父目录

复制文件和目录

删除文件和目录

转换成和从一个网址

通过筛选和扩展列表文件和目录

比较文件内容

文件最后更改日期

 


FileSystemUtils


工具类可以获取系统文件剩余空间的大小。

 


参考文章:

【1】 官网下载     官方api

【2】 Apache Commons IO Tutorial: A beginner’s guide

【3】ImportNew – yewenhai  Apache Commons IO入门教程

【4】 FileUtils方法大全

【5】Apache common-io用户指南

贴士:本文持续更新。

 






如果您认为本教程质量不错,读后觉得收获很大,预期工资能蹭蹭蹭的往上涨,那么不妨小额赞助我一下,让我有动力继续写出高质量的教程。

发布者

souvc

souvc

搜你所想,投你所好。

《Apache Commons IO处理输入输出操作实例》有29个想法

  1. Pingback: Bdsm
  2. Pingback: Look At This
  3. Pingback: Aws Colarts Diyala
  4. Pingback: Aws Alkhazraji Diyala
  5. Pingback: Aws for Seo
  6. Pingback: iq human
  7. Pingback: https://goo.gl/RfxWPu
  8. Pingback: PK studies
  9. Pingback: informática
  10. Pingback: Yusuf kısa
  11. Pingback: Klinik gigi surabaya
  12. Pingback: maglie del calcio
  13. Pingback: maglie calcio
  14. Pingback: 인터넷바카라
  15. Pingback: BEST CBD Products
  16. Pingback: real madrid tøj
  17. Pingback: maglia real madrid
  18. Pingback: fotballdrakter barn
  19. Pingback: fotbollströjor
  20. Pingback: fotballdrakter

发表评论