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

文件操作工具类(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"),linestrue);

 

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

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拷贝到mma.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:ssSSS");  //最后三个大写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

 

 

 

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
FileUtils类是一个常用文件操作工具类,提供了许多便捷的方法来处理文件和目录。 以下是一些常用方法说明: 1. `FileUtils.copyFile(File srcFile, File destFile)`:复制文件。将源文件srcFile复制到目标文件destFile。 2. `FileUtils.copyDirectory(File srcDir, File destDir)`:复制目录。将源目录srcDir及其子目录和文件复制到目标目录destDir。 3. `FileUtils.moveFile(File srcFile, File destFile)`:移动文件。将源文件srcFile移动到目标文件destFile。 4. `FileUtils.moveDirectory(File srcDir, File destDir)`:移动目录。将源目录srcDir及其子目录和文件移动到目标目录destDir。 5. `FileUtils.deleteQuietly(File file)`:安静删除文件或目录。如果是目录,则递归删除目录及其所有子目录和文件。 6. `FileUtils.listFiles(File directory, String[] extensions, boolean recursive)`:列出指定目录下的所有文件。可以通过extensions参数指定文件扩展名过滤,recursive参数指定是否递归查找子目录。 7. `FileUtils.readFileToString(File file, Charset encoding)`:将文件内容读取为字符串。可以指定字符编码。 8. `FileUtils.writeStringToFile(File file, String data, Charset encoding)`:将字符串写入文件。可以指定字符编码。 9. `FileUtils.sizeOf(File file)`:获取文件或目录的大小,以字节为单位。 这些只是FileUtils类中的一些常用方法,还有很多其他方法可以用于文件和目录操作。你可以参考FileUtils类的文档或源码来了解更多详细信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

茁壮成长的凌大大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值