【Java】工具包(Commons-io)

一、引入

Commons-ioapache开源基金组织 提供的一组有关IO操作的开源工具包。

很多课程中会将 Commons-io 说成 框架,这个说法是有问题的,因为它还达不到框架的级别,它只是一个工具包而已。

apache 是一个专门为支持开源软件项目而办的一个非盈利性组织。

这个组织成立于 1999年,总部设于美国马里兰州。

这个组织有很多很多项目,现在在世界各地被广泛的使用,这些开源的项目为Java的快速发展提供了不可磨灭的贡献。

例如有我们后面学习的 Web应用服务器tomcat项目管理工具mavenJava的安全框架shiro分布式框架Dubbo消息中间件ACTIVEMQ、RocketMQ大数据的消息中间件kafka分布式中做配置中心的zookeeper大数据的分析平台Apache Pig大数据开发的三大框架hadoop/spark/flink分步搜索lucene,但是它现在已经被es所替代了还有我们现在所学习的commons

image-20240505105024710

Commons是apache开源基金组织提供的工具包,里面有很多帮助我们提高开发效率的API。

比如:

​ StringUtils 字符串工具类

​ NumberUtils 数字工具类

​ ArrayUtils 数组工具类

​ RandomUtils 随机数工具类

​ DateUtils 日期工具类

​ StopWatch 秒表工具类

​ ClassUtils 反射工具类

​ SystemUtils 系统工具类

​ MapUtils 集合工具类

​ Beanutils bean工具类

​ Commons-io io的工具类

​ 等等…

其中:Commons-io是apache开源基金组织提供的一组有关IO操作的开源工具包。

作用:提高IO流的开发效率。


二、使用

由于 commons-io 不是我们自己写的,也不是Java提供的,而是第三方组织 apache 提供的。

第三方组织会将写好的代码打包成一个压缩包交给你,只不过在Java中压缩包的后缀是 jar,所以我们也把它叫做 jar包

jar包 中其实就是别人写好的各种各样的类,如果你想要使用这些类中的方法,是不能直接用的,而是需要先将别人的代码导入到我们自己的项目中。

但是在以后我们会用到很多很多别人写好的代码,因此在正式使用的第一步是:在项目中新建一个文件夹:lib,这个文件夹以后去专门存放第三方jar包。

使用方式:

1,在项目中新建一个文件夹:lib

2,将jar包复制粘贴到lib文件夹

3,右键点击jar包,选择Add As a Library,表示将jar包跟我们的项目关联在一起了

4,在类中导包使用

它里面已经写好的方法有很多很多,但是有前面的的 IO流 做基础,这些方法很简单,看它的名字基本上也能猜出它的作用了。

并且你也能猜出它底层是怎么写代码的。

首先我们来说第一个相对来说比较常用的类 FileUtils

第一个单词 File 表示 文件 / 文件夹的路径Utils 表示 工具,因此这个类里面的方法都是一些 文件/文件夹相关的方法

image-20240505105211255

除了这个类外,还有 IOUtils类,也是比较常见的。这个类里面大多是跟流相关的方法。

它也有拷贝,只不过在拷贝的时候传的就不是 File 了,而是 IO流

image-20240505105517464

在以后,commons-io 淘汰了,它也会出现其他的替代品,但是只要基础扎实了,这些替代品学起来也是非常简单的。


三、代码示例

1)在项目中新建一个文件夹:lib

新建一个文件夹,文件夹的名字就叫做 lib(library),这就表示以后,我们所用的所有第三方jar包,都会拷贝到这个文件夹中,方便管理。

image-20240505105927657

来看一下资料中提供的 jar包

  • commons-io-2.11.0-javadoccommons-io 后面有 javadoc,那就表示在这个jar包中,都是一些文档
  • commons-io-2.11.0-sourcessources 即源代码,因此在这个jar包中装的就是源代码
  • commons-io-2.11.0-teststest ,即用来做测试的
  • commons-io-2.11.0-test-sources:用来做测试的源代码

因此上面四个都不是我想要的,我真正想要的、要导到当前项目中的,应该是第一个 commons-io-2.11.0(后面是它的版本号)

image-20240505110120129

因此选中第一个 ctrl + C,回到代码中,点击 lib ctrl + V 直接粘贴进去就行了。

image-20240505110531935

但是光粘贴过来还不行,还需要让项目跟 jar包 两者间产生关联。

最后一步:右键点击 commons-io-2.11.0.jar,选择 Add as Library... ,然后点击 OK 即可

image-20240505110940187 image-20240505111000285

一旦关联成功后,在jar包的左边会有一个这样的箭头

image-20240505111045973

双击打开,是可以将jar包展开,看见里面的内容。这就表示你的jar包导入成功。

image-20240505111125904

2)将jar包复制粘贴到lib文件夹

一旦导入成功之后,我就可以开始使用里面的方法了。

在书写的时候要注意导入的包

image-20240505111507736

由于下面的方法都是静态的,因此可以直接使用类名调用。

//一定不要导错包
import org.apache.commons.io.FileUtils;
/*
  FileUtils类
        static void copyFile(File srcFile, File destFile)                   复制文件
        static void copyDirectory(File srcDir, File destDir)                复制文件夹,直接拷贝文件夹里面的内容,拷贝后点进去,里面就是srcDir里面的东西。
        static void copyDirectoryToDirectory(File srcDir, File destDir)     复制文件夹,将数据源文件夹原封不动的拷贝到目的地文件夹里面,点进去后,会先看到srcDir目录,然后再看到srcDir目录里面的东西。
        static void deleteDirectory(File directory)                         删除文件夹,文件夹本身也被删掉了
        static void cleanDirectory(File directory)                          清空文件夹,文件夹里面的东西没有了,但是文件夹本身还在
        static String readFileToString(File file, Charset encoding)         读取文件中的数据变成成字符串
        static void write(File file, CharSequence data, String encoding)    写出数据

    IOUtils类
        public static int copy(InputStream input, OutputStream output)      复制文件
        public static int copyLarge(Reader input, Writer output)            复制大文件
        public static String readLines(Reader input)                        读取数据
        public static void write(String data, OutputStream output)          写出数据
 */
File src = new File("myio\\a.txt");
File dest = new File("myio\\copy.txt");
FileUtils.copyFile(src, dest);


File src = new File("D:\\aaa");
File dest = new File("D:\\bbb");
FileUtils.copyDirectoryToDirectory(src, dest);

File src = new File("D:\\bbb");
FileUtils.cleanDirectory(src);
  • 25
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
commons-io是一个开源的Java类库,用于处理I/O操作。最新版本是commons-io 2.8。 commons-io提供了一组简单易用的工具类,帮助开发者处理常见的I/O任务。它包含了各种操作文件、输入输出流、文件复制、字符编码转换等功能。 commons-io的主要特点有以下几点: 1. 文件操作:commons-io提供了一系列便捷的方法来处理文件,比如读取文件到字节数组、字符串,将字节数组、字符串写入文件等。这些方法简化了文件操作的繁琐步骤,提高了效率。 2. 输入输出流:commons-io封装了一些常用的I/O流,如字节流、字符流、缓冲流等,使得开发者能够更方便地处理输入输出任务。 3. 文件复制:commons-io提供了文件复制的功能,可以将一个文件内容复制到另一个文件中。同时,它还支持复制目录,包括子目录和文件。 4. 字符编码转换:commons-io提供了字符编码转换的方法,可以方便地进行字符集之间的转换,如Unicode、UTF-8、GBK等。 5. 异常处理:commons-io对I/O操作可能出现的异常进行了封装,提供了一套异常处理机制。这样,开发者可以更好地处理异常情况,提高程序的健壮性。 总之,commons-io是一个强大而且易用的Java I/O类库。它的各种工具类和方法提供了便捷的文件读写、复制以及字符编码转换等功能。无论是开发桌面应用还是后端服务,都可以通过引入commons-io来提升代码质量和开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值