Apache-commons-io包的使用及常用方法
首先,我们要下载FileUtils相关的Apache-commons-io jar包以及api文档。FileUtils类库的下载页面在:
http://commons.apache.org/proper/commons-io/download_io.cgi
image.png
FieUtils类中常用方法的介绍
打开FileUtils的api文档,我们抽出一些工作中比较常用的方法,进行总结和讲解。总结如下:
cleanDirectory:清空目录,但不删除目录。
contentEquals:比较两个文件的内容是否相同。
copyDirectory:将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的 文件。
copyFile:将一个文件拷贝到一个新的地址。
copyFileToDirectory:将一个文件拷贝到某个目录下。
copyInputStreamToFile:将一个输入流中的内容拷贝到某个文件。
deleteDirectory:删除目录。
deleteQuietly:删除文件。
listFiles:列出指定目录下的所有文件。
openInputSteam:打开指定文件的输入流。
readFileToString:将文件内容作为字符串返回。
readLines:将文件内容按行返回到一个字符串数组中。
size:返回文件或目录的大小。
write:将字符串内容直接写到文件中。
writeByteArrayToFile:将字节数组内容写到文件中。
writeLines:将容器中的元素的toString方法返回的内容依次写入文件中。
writeStringToFile:将字符串内容写到文件中。
示例:
1、统计文件或者目录大小
public static void main(String[] args) {
//文件大小
long len =FileUtils.sizeOf(new File(.../../../XX.java));
System.out.println(len);
//目录大小
len = FileUtils.sizeOf(new File(D:/../../../study04));
System.out.println(len);
}
2、列出子孙级目录或文件,带有过滤功能
public static void main(String[] args) {
Collectionfiles =FileUtils.listFiles(new File(D:\\java300\\IO_study04),
EmptyFileFilter.NOT_EMPTY, null);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println(---------------------);
files =FileUtils.listFiles(new File(D:\\..\\IO_study04),
EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println(---------------------);
files =FileUtils.listFiles(new File(D:\\..\\IO_study04),
new SuffixFileFilter(java), DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println(---------------------);
files =FileUtils.listFiles(new File(D:\\..\\IO_study04),
FileFilterUtils.or(new SuffixFileFilter(java),
new SuffixFileFilter(class),EmptyFileFilter.EMPTY), DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
System.out.println(---------------------);
files =FileUtils.listFiles(new File(D:\\..\\IO_study04),
FileFilterUtils.and(new SuffixFileFilter(java),
EmptyFileFilter.NOT_EMPTY), DirectoryFileFilter.INSTANCE);
for (File file : files) {
System.out.println(file.getAbsolutePath());
}
}
3、读物文件
public static void main(String[] args) throws IOException {
//读取文件
String msg =FileUtils.readFileToString(new File(emp.txt),UTF-8);
System.out.println(msg);
byte[] datas = FileUtils.readFileToByteArray(new File(emp.txt));
System.out.println(datas.length);
//逐行读取
Listmsgs= FileUtils.readLines(new File(emp.txt),UTF-8);
for (String string : msgs) {
System.out.println(string);
}
LineIterator it =FileUtils.lineIterator(new File(emp.txt),UTF-8);
while(it.hasNext()) {
System.out.println(it.nextLine());
}
}
4、写出内容
public static void main(String[] args) throws IOException {
//写出文件
FileUtils.write(new File(happy.sxt), 学习是一件伟大的事业\r\n,UTF-8);
FileUtils.writeStringToFile(new File(happy.sxt), 学习是一件辛苦的事业\r\n,UTF-8,true);
FileUtils.writeByteArrayToFile(new File(happy.sxt), 学习是一件幸福的事业\r\n.getBytes(UTF-8),true);
//写出列表
Listdatas =new ArrayList();
datas.add(马云);
datas.add(马化腾);
FileUtils.writeLines(new File(happy.sxt), datas,--------------,true);
}
5、复制文件
public static void main(String[] args) throws IOException {
//复制文件
//FileUtils.copyFile(new File(p.png),new File(p-copy.png));
//复制文件到目录
//FileUtils.copyFileToDirectory(new File(p.png),new File(lib));
//复制目录到目录
//FileUtils.copyDirectoryToDirectory(new File(lib),new File(lib2));
//复制目录
//FileUtils.copyDirectory(new File(lib),new File(lib2));
//拷贝URL内容
//String url = https://pic2.zhimg.com/v2-7d01cab20858648cbf62333a7988e6d0_qhd.jpg;
//FileUtils.copyURLToFile(new URL(url), new File(marvel.jpg));
String datas =IOUtils.toString(new URL(http://www.163.com), gbk);
System.out.println(datas);
}
Apache-commons-io包的使用及常用方法的更多相关文章
- apache commons io包基本功能
1. http://jackyrong.iteye.com/blog/2153812 2. http://www.javacodegeeks.com/2014/10/apache-commons-io ...
- IO与文件读写---使用Apache commons IO包提高读写效率
觉得很不错,就转载了, 作者: Paul Lin 首先贴一段Apache commons IO官网上的介绍,来对这个著名的开源包有一个基本的了解:Commons IO is a library of ...
- Apache Commons IO入门教程(转)
Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码,这些代码可能遍布于每个独立的 ...
- [转]Apache Commons IO入门教程
Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码,这些代码可能遍布于每个独立的 ...
- apache commons io入门
原文参考 http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html Apache Commons IO 包绝对是 ...
- .apache.commons.io 源代码学习(一)
java的初学者,准备通读各种高水平源代码,提升能力. 为了避免自己的惰性,写博客. 版本:2.5 开发平台:netbeans. 今天是第一天,网上先看个例子:http://www.importnew ...
- Apache Commons IO之FileUtils的常用方法
Apache Commons IO 在学习io流的时候研究(翻译)了一下这个,只有FileUtils的某些方法,并不全面,还请谅解 org.apache.commons.io 这个包下定义了基于 st ...
- apache.commons.io.IOUtils: 一个很方便的IO工具库(比如InputStream转String)
转换InputStream到String, 比如 //引入apache的io包 import org.apache.commons.io.IOUtils; ... ...String str = IO ...
- Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
1.错误叙述性说明 警告: Could not create JarEntryRevision for [jar:file:/D:/MyEclipse/apache-tomcat-7.0.53/web ...
- java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream(转)
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream 使用Tomcat的Manag ...
随机推荐
- 微信小程序 --- toast消息提示框
toast:是用于进行提示用户的: 效果: 代码: <toast hidden="{{onOff}}" duration="1000" bindchang ...
- apache+tomcat负载均衡3种实现方式
1.首先安装apache,编译完成后,通过IP:端口就行访问,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确) 2.下载JK,下载地址为http://mir ...
- 160227、javascript特效
1.给网页设定快捷键 js: function getkey(){ event = event || window.event; url = "www.baidu.com&q ...
- Gitlab邮箱配置
一些动作会自动发邮件,比如合并代码等 未验证
- poj1584 A round peg in a ground hole【计算几何】
含[判断凸包],[判断点在多边形内],[判断圆在多边形内]模板 凸包:即凸多边形 用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点. The ...
- ASM学习记录
代理: 代理模式: 静态代理: 动态代理:是指在运行期动态的为指定的类生成其代理类.(需要相关的运行时编译技术) Javassist:Javassist是一个运行时编译库,他能动态的生成或修改类的字节 ...
- display属性的表格布局相关属性
基于CSS属性display:table的表格布局的使用 项目改造中遇到DIV+CSS实现的table,新需求需要在表格使用单元格合并,网上调查返现CSS display:table实现的tabl ...
- tools-eclipse-001-如何安装插件
插件的安装方法大体有以下三种: 第一种:直接复制法: 假设你的Eclipse的在(C:\eclipse), 解压你下载的 eclipse 插件或者安装eclipse 插件到指定目录AA(c:\AA)文 ...
- iis启动 服务无法在此时接受控制信息。 (异常来自 HRESULT:0x80070425)
问题描述:每隔一段时间应用程序池就会自动停止,报错:服务无法在此时接受控制信息.(异常来自 HRESULT:0x80070425) iis启动 服务无法在此时接受控制信息. (异常来自HRESUL ...
- [World Wind学习]22.相机高度和瓦片等级计算
在这里我们看到判断Lod的级别主要有三个条件: * 1.相机视角范围,视角范围越大,所包含的tileSize就越大 * 2.相机与瓦片距离,距离越远,所包含的tileSize也就越大 * 3.相机视锥 ...