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 ...
随机推荐
- thinkphp---数据表更新字段开发模式可更新生产模式不能更新!
这里认为是坑的主要原因:这个问题我调试了一天,才发现是缓存的问题. 问题原因:在做一thinkphp的项目,在后期要进行修改.修改的时候,数据表里面添加了两个字段,然后前台修改模板,将添加的字段提交上 ...
- log4j.properties配置详解与实例(转载)
转自:http://blog.sina.com.cn/s/blog_5ed94d710101go3u.html 最近使用log4j写log时候发现网上的写的都是千篇一律,写的好的嘛不全,写的全一点的嘛 ...
- Yii2 高级模板不使用Apache配置目录,将前后台入口移到根目录
刚刚入手Yii2高级模板不久,部署项目时,得部署2个应用,个人感觉很繁琐,就将前后台入口文件全部拿到项目根目录.但是一看,完了,出错了!找教程找不到,还是自己解决吧 为了以后好升级,不改变Yii2核心 ...
- 使用异步消息处理更新UI线程
1. Android的UI时线程不安全的,如果在子线程中更新UI会出现异常,导致程序崩溃. 为了解决如上这些问题,我们常用的做法就是使用Android的异步消息机制实现即可(创建一个Message对象 ...
- Hibernate的状态,缓存和映射
Hibernate的状态,缓存和映射 1.对象的状态 1.1.对象状态的概念和分类 在使用Hibernate操作数据库的时候,我们先创建了JavaBean对象,然后使用session来保存或者更新到数 ...
- VM+CentOS+hadoop2.7搭建hadoop完全分布式集群
写在前边的话: 最近找了一个云计算开发的工作,本以为来了会直接做一些敲代码,处理数据的活,没想到师父给了我一个课题“基于质量数据的大数据分析”,那么问题来了首先要做的就是搭建这样一个平台,毫无疑问,底 ...
- Python爬虫scrapy-redis分布式实例(一)
目标任务:将之前新浪网的Scrapy爬虫项目,修改为基于RedisSpider类的scrapy-redis分布式爬虫项目,将数据存入redis数据库. 一.item文件,和之前项目一样不需要改变 # ...
- K-均值聚类(K-means)算法
https://www.cnblogs.com/ybjourney/p/4714870.html 最近在看<机器学习实战>这本书,因为自己本身很想深入的了解机器学习算法,加之想学pytho ...
- C# WinForm实现任务栏程序图标闪烁
相信大家在用QQ的时候都会知道,你打开了QQ聊天窗口,如果窗口不是当前激活的窗口的话,收到QQ消息时,任务栏(不是托盘图标)上的图标会闪一下变成黄色(Win7默认主题下),用以通知用户有消息进来了,之 ...
- python中的Redis键空间通知(过期回调)
介绍 Redis是一个内存数据结构存储库,用于缓存,高速数据摄取,处理消息队列,分布式锁定等等. 使用Redis优于其他内存存储的优点是Redis提供持久性和数据结构,如列表,集合,有序集和散列. 在 ...