文档章节

文件操作工具类 FileUtils常用方法

AndLong
 AndLong
发布于 09/23 14:54
字数 1148
阅读 13
收藏 0

文件操作工具类(FileUtils)
使用该工具类的前提是项目里导入commons-io 包

import org.apache.commons.io.FileUtils;

 List<String> lines=new ArrayList<String>();  

lines.add("欢迎访问:");

lines.add("www.cxyapi.com");


*如果没有文件会自动创建,并且将集合元素以行来划分,多次写入会覆盖原有内容。

FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines);

 

*以下方法无效,不知道什么原因,带boolean的这种都无效

FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);

 

*写入一行数据,如果已经有值会替换。

FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy", "UTF-8");

 

 

 *读取文件数据,以字符串返回,每行后加一个\r\n在控制台显示,所以可以以下边的办法转为数组。

String aString = FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8");

String[] a = aString.split("\\r\\n"); //将文件内容按行为单位转换为字符串数组

 

* 读取文件数据,以字符串集合返回

List<String> list = FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8");

 

 * 该方法会将b文件夹删掉,不管b下是否有内容,如果b不存在也不报错

FileUtils.deleteDirectory(new File("D:/a/b"));

   

  * 将a文件夹下内容拷贝到ee文件夹下,如果a不存在则报异常,ee不存在则会新建

 FileUtils.moveDirectory(new File("D:/b/c"), new File("D:/b/mm/ff"));

 

 * 将cc文件夹拷贝到3文件夹下,与上边不同的是,cc文件夹会存在,也是前者没有会报错,后者没有会新建

FileUtils.moveDirectoryToDirectory(new File("D:/b/cc"), new File("D:/b/3"), true);

 

* 此方法将mm下(不包括mm)所有的文件夹及文件复制到3下,如果有同名文件夹则合并,如果有同名文件则替换

FileUtils.copyDirectory(new File("D:/b/mm"), new File("D:/b/3"));

 

* 此方法将mm下(包括mm)所有的文件夹及文件复制到3下,如果有同名文件夹则合并,如果有同名文件则替换

FileUtils.copyDirectoryToDirectory(new File("D:/b/mm"), new File("D:/b/3"));

 

 

* (常用)此方法将b文件夹下a.doc拷贝到mm下a.doc,前者不存在会报错,后者不存在会新建,如果后者存在同名文件则替换

* 另外如果后者为a.xml等不同后缀的文件,程序仍不报错,但文件内容乱码

FileUtils.copyFile(new File("d:/b/a.doc"), new File("d:/b/mm/a.doc"));

FileUtils.copyFile(new File("d:/b/a.doc"), new File("d:/b/mm","a.doc"));//与上边功能一样

 

* 此方法将b文件夹下的a.doc拷贝到b/3mm文件夹下,如果有同名文件则替换,前者没有报错,后者没有新建

FileUtils.copyFileToDirectory(new File("d:/b/a.doc"), new File("d:/b/3mm"));

 

 * 此方法可以将任何网址的后台页面内容拷贝到a.xml文件内,如果后者存在则替换,不存在则新建,前者不存在则报错,网页访问出错(404等)则不报错

FileUtils.copyURLToFile(new URL("http://www.baidu.com"), new File("d:/b/a.xml"));

 

* 判断两个文件内容是否相同,如果两者都不存在仍认定为相同,如果类型不同(文件与文件夹相比则报错),此方法只能比较文件,

* 不能用于文件夹比较,但是该方法感觉不稳定,总是瞎报错,明明内容一样,非说false。

boolean b=FileUtils.contentEquals(new File("D:/b/a.doc"), new File("D:/b/mm/c.doc"));

 

* 清理3文件夹下所有内容(有了它,再也不需要写递归方法了吧?)

FileUtils.cleanDirectory(new File("d:/b/3"));

 

* 可删除文件,也可以删除文件夹,删除3文件夹,包括子文件及文件夹(有了它,再也不需要写递归方法了吧?)

FileUtils.forceDelete(new File("d:/b/a.doc"));

 

 

* 删除3文件夹,包括子文件及文件夹(有了它,再也不需要写递归方法了吧?)可删除文件夹也可以删除文件

 FileUtils.deleteDirectory(new File("d:/b/3"));

 

* 该文件是否在该时间之前创建(isFileOlder)

* 该文件是否在该时间之后创建(isFileNewer)

 String string="2016-12-20 10:00:00.023";

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");  //最后三个大写SSS代表毫秒,写1个表示前边都不补0,写两个只有是两位0补全

b= FileUtils.isFileOlder(new File("D:/b/a.doc"),sdf.parse(string));

b= FileUtils.isFileNewer(new File("D:/b/a.doc"),sdf.parse(string))

 

* 只能针对于目录文件夹,不能查看文件大小(查看文件是file.length() 例如:new File("d:/b/a.xml").length())

long a = FileUtils.sizeOfDirectory(new File("d:/b")); //单位为字节B


原文链接:https://blog.csdn.net/wohaqiyi/article/details/53813392

© 著作权归作者所有

AndLong
粉丝 0
博文 10
码字总数 15779
作品 0
荆州
私信 提问
Apache-Commons IO

工具类一共6个: org.apache.commons.io.filefilter.FileFilterUtils org.apache.commons.io. EndianUtils FilenameUtils FileSystemUtils FileUtils IOUtils 普通地读取一个网页的源代码的代......

Zhao-Qian
2014/11/04
140
0
Apache commons类库阅读笔记

commons-io --------Start--------- FilenameUtils 文件名称一些操作,如判断文件扩展名称等 FileUtils 文件工具类 IOUtils 主要提供了IO常见操作 Stream 转换,关闭Stream等操作 FileUtils文...

lis1314
2016/05/10
200
0
Cocos2d-x数据相关的类用法简介(附示例)

在Cocos2d-x的学习和使用中,我遇到了很多关于数据的操作。在这个过程中,我学习了Cocos2d-x自带的很多功能。下面我把接触到的类罗列在下面,给出的都是基本的用法,多数没有深入了解。 User...

andong777
09/29
0
0
最全Android开发常用工具类

主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java。 目前包括 HttpUtils、DownloadManagerPro、Safe.ijiami、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileU...

3eera
2014/11/18
13.1K
22
翻翻git之---实用工具类Lazy(绝对的好东西,走过路过别错过)

版权声明:本文为博主原创文章,允许转载,但请保留出处。 https://blog.csdn.net/ddwhan0123/article/details/50624061 转载请注明出处:这里写链接内容 今天还是继续昨天的从Git上找点“有...

王亟亟
2016/02/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《JAVA核心知识》学习笔记 (21. JAVA 算法)

21. JAVA 算法

Shingfi
20分钟前
4
0
redis 命令

redis 秒杀用到的 原子锁 :$redis->decr('jili_reward_goods_stock_' . $gifts_id) redis 秒杀用到的原子锁在秒杀过程中库存量增加 $redis->incrBy('key1', 10); redis 键查看重复:$redis-......

小小小壮
20分钟前
4
0
像智能手机一样管理云端应用:阿里云联合微软全球首发开放应用模型(OAM)

2019 年 10 月 17 日上午 9 点 15 分,阿里巴巴合伙人、阿里云智能基础产品事业部总经理蒋江伟在 QCon 上海《基于云架构的研发模式演进》主题演讲中,正式宣布: “今天,我们同微软联合发布...

阿里巴巴云原生
29分钟前
4
0
SpringBoot配置数据源

默认数据源 Springboot默认支持4种数据源类型,定义在 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 中,分别是: org.apache.tomcat.jdbc.pool.DataSource......

Gx_ww
33分钟前
4
0
Java应用在docker环境配置容器健康检查

在《极速体验docker容器健康》一文已体验了docker容器健康检查功能,今天就来给java应用的容器加入健康检查,使应用的状态随时都可以被监控和查看。 实战环境信息 操作系统:macOS Catalina ...

程序员欣宸
34分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部