`
shell_picker
  • 浏览: 15570 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Apache Commons 库:用了都说好!

    博客分类:
  • Java
阅读更多

最近自己写程序,发现 Apache Commons (http://commons.apache.org/) 库真的很好用,能够简化 Java 中很多繁琐的任务,帮我们造了很多轮子。

 

1. commons-io

跟 IO 有关的工具方法。

 

例1:关闭流

 

BufferedWriter out = null;
try {
    out = new BufferedWriter(...);
    out.write(...);
    ...
}
catch (IOException e) {
    e.printStackTrace();
}
finally {
    if (out != null) {
        try {out.close();} catch (IOException e) {}
    }
}

 上面 finally 中的是关闭流的常规写法,用 IOUtils 只需写成:

IOUtils.closeQuietly(out);

 

例2:读文件

List<String> = FileUtils.readLines(File); // 将文件的内容按行读到 List 里面
byte[] = FileUtils.readFileToByteArray(File); // 也可以读到 byte 数组里面

 也可以直接从 InputStream 读取。

 

例3:遍历目录

 

commons-io 提供了 DirectoryWalker 用于递归遍历目录,你的程序只需继承 DirectoryWalker ,然后实现一些方法即可。“目录行走者”,这个名字也很 cool :P

 

2. commons-cli

commons-cli 可以帮助你解析命令行参数

 

你需要写的只是像这样的代码:

 

// Options 用来装所有的参数
Options options = new Options();

// 添加参数,指定参数属性
options.addOption("t", false, "display current time");

// 解析参数
CommandLineParser parser = new PosixParser();
CommandLine cmd = parser.parse(options, args);

// 读取解析结果
if(cmd.hasOption("t")) {
...
}
else {
...
}

 

而且还有 HelpFormatter 帮你自动生成一份命令行选项的帮助,相当贴心。

 

3. commons-lang

提供很多基础的工具方法,增强了 java.lang 包中的类。用的比较多的是关于字符串处理的,即 StringUtils 和 StringEscapeUtils

我用到的是 StringEscapeUtils.escapeHtml(String):将字符串中的 HTML 特殊字符(<>"等)用 HTML 实体替换。

 

还有 StrTokenizer :可以进行比 StringTokenizer 更复杂的文法解析。

 

4. commons-configuration

没用过,但看起来也很不错。提供统一的接口,从各种地方读取配置,比如:properties 文件、Windows INI 文件、XML 文档、Applet/Servlet 参数等。


PS. 另外,commons-pool 提供了一个通用的对象池实现,我准备在另一篇文章中专门介绍。

分享到:
评论
1 楼 zhoutaomtv 2010-05-18  
很期待你的另一篇文章专门介绍

相关推荐

    apache-commons下源码大放送

    apache-commons下全部官方源码和官方API文档,其中有: commons-beanutils-1.8.0 commons-codec commons-collections commons-dbcp commons-dbutils commons-fileupload commons-io commons-lang commons-lang3 ...

    Apache Commons Math3探索之多项式曲线拟合实现代码

    主要介绍了Apache Commons Math3探索之多项式曲线拟合实现代码,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。

    Apache Commons Collections 使用指南

    Apache Commons Collections的使用指南,该jar包提供了多数集合的线程安全版本,以及增强了大多数的集合功能,送给那些不想重复发明轮子的人.

    ApacheCommonsAPI

    Apache Commons是Apache软件基金会的项目,曾隶属于Jakarta项目。Commons的目的是提供可重用的、开源的Java代码。 Apache Commons项目的由三部分组成: The Commons Proper - 一个可重用的Java组件库。(已经发布过的...

    commons-imaging:Apache Commons Imaging(以前称为 Sanselan)是一个纯 Java 图像库

    与 Apache Commons Imaging 的使用相关的问题应该张贴到。 我在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者,您可以从中央 Maven 存储库中提取它: &lt; groupId&gt;org.apache.commons ...

    commons-net:Apache Commons Net

    与Apache Commons Net的使用有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者,您可以从中央Maven存储库中提取它: &lt; groupId&gt;commons-net&lt;/ groupId&gt; ...

    commons-beanutils:Apache Commons Beanutils

    Apache Commons BeanUtils Apache Commons BeanUtils为反射和自省提供了一个易于使用但灵活的包装器。文献资料可以在上找到更多信息。 可以浏览 。 与Apache Commons BeanUtils的用法有关的问题应张贴到。在哪里可以...

    apache commons jar包

    org apache commons 的jar包! 

    commons-cli:Apache Commons CLI

    与Apache Commons CLI的使用有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者,您可以从中央Maven存储库中提取它: &lt; groupId&gt;commons-cli &lt; artifactId&gt;commons-...

    commons-statistics:Apache Commons Statistics的镜像

    Apache Commons统计 Apache Commons Statistics项目提供了统计工具。 文献资料 可以在上找到更多信息。 可以浏览 。 与Apache Commons Statistics的用法有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从...

    org.apache.commons.jar包官方免费版(附下载地址)

    解决Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils 类似错误,需要导入jar包,下载地址是http://commons.apache.org/proper/commons-io/download_io.cgi

    commons-validator:Apache Commons Validator

    与Apache Commons Validator的使用有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者,您可以从中央Maven存储库中提取它: &lt; groupId&gt;commons-validator ...

    commons-daemon:Apache Commons守护程序

    与Apache Commons Daemon的使用有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者,您可以从中央Maven存储库中提取它: &lt; groupId&gt;commons-daemon &lt; artifactId&gt;...

    commons-geometry:Apache Commons Geometry

    Apache Commons Geometry Apache Commons Geometry项目提供了几何类型和实用程序。 文献资料 可以在上找到更多信息。 可以浏览 。 与Apache Commons Geometry的用法有关的问题应张贴到。 在哪里可以获得最新版本? ...

    commons-numbers:Apache Commons Numbers的镜像

    Apache Commons Numbers项目提供了数字类型和实用程序。 文献资料 可以在上找到更多信息。 可以浏览每个模块的Javadoc: 与Apache Commons Numbers的用法有关的问题应张贴到。 在哪里可以获得最新版本? 您可以从...

    apache-commons-logging.zip

    apache-commons-logging.zip 常用Java库。

    apache-commons-id.jar包

    org.apache.commons.id.uuid.UUID jar包

    commons-pool:Apache Commons Pool的镜像

    Apache Commons池 Apache Commons对象池库。文献资料可以在上找到更多信息。 可以浏览 。 与Apache Commons Pool的使用有关的问题应张贴到。在哪里可以获得最新版本? 您可以从我们的下载源代码和二进制文件。 或者...

    org.apache.commons 的 jar 包 源码

    org.apache.commons 的 jar 包 org.apache.commons的jar包,Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动,有需要的赶快来CSDN下载吧

    commons-email:Apache Commons电子邮件

    或者,您可以从中央Maven存储库中提取它: &lt; dependency&gt; &lt; groupId&gt;org.apache.commons&lt;/ groupId&gt; &lt; artifactId&gt;commons-email&lt;/ artifactId&gt; &lt; version&gt;1.5&lt;/ version&gt;&lt;/ dependency&gt;贡献我们通过GitHub接受拉取...

Global site tag (gtag.js) - Google Analytics