作为J2SE中”三大核心”之一的IO操作,我们虽然在学习时可以忽略“重复造轮子”的禁忌;但在实际开发当中,还是应本着“业务第一,有轮子就用的”原则来指导我们的日常工作。
java代码的规模
当我们刚开始接触java时,无一例外的会从其基本语法入手。这时,我们也会跟着教程写几个简单demo,看看效果,并因此而小激动一会。
随着学习的深入,我们会逐渐了解到我们平时练手的这些小代码块,编译后无非是一些class
文件,它们的运行需要java虚拟机的加载与相关环境的支持。后来我们会接触到一些有用的工具包,它们一般是以jar
压缩包的形式提供给我们;jar
包中一般会包含一到多个class
文件,换句话说,jar
包将一些有用的、经过开发者实践的代码整合到了一起。照上述类推,许多的jar
又一道构成了功能更强大的component
组件(常见的如:我们接下来要谈到的CommonIO
);在此基础上又一次聚合,就得到了所谓的framework
框架(如Spring
、Commons
等)。
graph LR id1(class文件)-->|组成|id2(jar包); id2(jar包)-->|组成|id3(component组件); id3(component组件)-->|组成|id4(framework框架);
下载与配置
graph TB id1["进入Apache官网Commons页面(http://commons.apache.org/)"]==>id2["进入CommonIO项目页(http://commons.apache.org/proper/commons-io/)"]; id2["进入CommonIO项目页(http://commons.apache.org/proper/commons-io/)"]==>id3["下载最新CommonsIO_jdk"];
下载完CommonsIO_jar包后,我们只需按照相应IDE的lib
引入方法,完成对jar
包的引入设置。这里以idea为例,我们只需先进入project structure 面板,然后点击左侧的Libraries选项,最后点击添加按钮并添加想要的jar包。
CommonsIO常用接口
文件及目录大小获取
获取文件大小
1 | 方法: public static long sizeOf(final File file); |
获取目录大小
1 | 方法:public static long sizeOfDirectory(final File directory); |
遍历及筛选目录
1 | /** * 遍历指定目录的第一层子目录,过滤条件为:内容非空 */ |
读取文件内容
1 | //读取文件内容方式一:(一次性读取) |
写文件操作
1 | //写字符串到文件 |
拷贝操作
1 | //copy file |