FileUtils工具类的使用方法
/**
* FileUtils支持很多文件操作,如
* 文件写入
* 读取文件
* 创建目录
* 拷贝文件和目录
* 删除文件和目录
* 从URL转换
* 基于统配和过滤查看文件和目录
* 比较文件内容
* 文件的更新时间
* 检查校验码
*/
public class FileUtilsTest {
private static File parent = new File("D://test");
@Test
public void getDirTest(){
//获得基本的信息
System.out.println(FileUtils.getTempDirectory());//获取临时目录 java.io.tmpdir,getUserDirectoryPath返回路径字符串
System.out.println(FileUtils.getUserDirectory());//获取用户主目录 user.home,getUserDirectoryPath返回路径字符串
//以可读的方式,返回文件的大小EB, PB, TB, GB, MB, KB or bytes
System.out.println(FileUtils.byteCountToDisplaySize(10000000));
System.out.println(FileUtils.byteCountToDisplaySize(1));
}
@Test
public void openStream() throws IOException {
//获取文件输入和输出的文件流
//文件是目录或者不存在,都会跑出异常
InputStream in = FileUtils.openInputStream(new File("D://test/test1"));
OutputStream out = FileUtils.openOutputStream(new File("D://test/test2"));
out = FileUtils.openOutputStream(new File("D://test/test3"),true);//是否追加的形式添加内容
}
@Test
public void FileOperation() throws IOException {
//创建文件,如果文件存在则更新时间;如果不存在,创建一个空文件
//创建空文件的方式为:
// final OutputStream out = openOutputStream(file);
// IOUtils.closeQuietly(out);
FileUtils.touch(new File("D://test/test4"));
//文件内容的对比
FileUtils.contentEquals(new File("D://test/test1"),new File("D://test/test2"));
FileUtils.contentEqualsIgnoreEOL(new File("D://test/test1"),new File("D://test/test2"),null);//忽略换行符,第三个参数是字符集
//根据URL获取文件
FileUtils.toFile(new URL("file://D://test/test1"));
FileUtils.toFiles(null);
FileUtils.toURLs(new File[]{new File("D://test/test1")});
//文件拷贝
FileUtils.copyFileToDirectory(new File("/test1"),new File("/dir"),true);//第三个参数是否更新时间
FileUtils.copyFile(new File("/source"),new File("/target"),true);//TODO 阅读doCopy源码
//目录拷贝
File srcDir = new File("/source");
File destDir = new File("/target");
FileUtils.copyDirectoryToDirectory(new File("/source"),new File("/target"));
FileUtils.copyDirectory(new File("/source"),new File("/target"));
FileUtils.copyDirectory(srcDir, destDir, DirectoryFileFilter.DIRECTORY);//仅仅拷贝目录
IOFileFilter txtSuffixFilter = FileFilterUtils.suffixFileFilter(".txt");// 创建.txt过滤器
IOFileFilter txtFiles = FileFilterUtils.andFileFilter(FileFileFilter.FILE, txtSuffixFilter);
// 创建包含目录或者txt文件的过滤器
FileFilter filter = FileFilterUtils.orFileFilter(DirectoryFileFilter.DIRECTORY, txtFiles);
// Copy using the filter
FileUtils.copyDirectory(srcDir, destDir, filter);//TODO 阅读doCopyDirectory源码
//文件拷贝
FileUtils.copyInputStreamToFile(new FileInputStream("/test"),new File("/test"));
FileUtils.copyURLToFile(new URL("file:/test"),new File("/test"));
//删除文件
FileUtils.deleteDirectory(new File("/test"));//删除目录下所有的内容
FileUtils.deleteQuietly(new File("/test"));//如果是目录,会级联删除;不会抛出异常
//判断文件是否存在
FileUtils.directoryContains(new File("/dir"),new File("/file"));
//清除目录中的内容,不会删除该目录;
//先verifiedListFiles检查目录,检查目录是否为目录、是否存在,然后调用listFiles,如果返回null,则抛出异常
//遍历目录中的文件,如果是目录则递归删除;如果是文件则强制删除,删除失败(文件不存在或无法删除)都会抛出异常
FileUtils.cleanDirectory(new File("/dir"));//TODO verifiedListFiles <------2016/11/24
//等待一个文件xx秒,知道文件创建后才返回。每max(100,remainning)循环检查一次
while(FileUtils.waitFor(new File("/dir"),60)){}
//读取目标文件,内部调用IOUtils.toString(inputstream,"utf-8")
String str = FileUtils.readFileToString(new File("/dir"),"utf-8");
//内部调用IOUtils.toByteArray(in)
byte[] bytes = FileUtils.readFileToByteArray(new File("/dir"));
//内部调用IOUtils.readLines(in, Charsets.toCharset(encoding));
List<String> strs = FileUtils.readLines(new File("/dir"),"utf-8");
//内部调用IOUtils.lineIterator(in, encoding)
FileUtils.lineIterator(new File("/dir"),"utf-8");
//四个参数分别为:目标文件,写入的字符串,字符集,是否追加
FileUtils.writeStringToFile(new File("/target"),"string","utf-8",true);
//write可以接受charsequence类型的数据,string,stringbuilder和stringbuffer都是实现了charsequence接口
FileUtils.write(new File("/target"),"target char sequence","utf-8",true);
FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes());//(file,字符数组)
FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),true);//(file,字符数组,是否追加)
FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),0,10);//(file,字符数组,起始位置,结束位置)
FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),0,10,true);//(file,字符数组,起始位置,结束位置,是否追加)
//writeLines多了一个lineEnding参数
FileUtils.writeLines(new File("/target"),"utf-8", FileUtils.readLines(new File("/target"),"utf-8"));
//强制删除
FileUtils.forceDelete(new File("/target"));
//在JVM
FileUtils.forceDeleteOnExit(new File("/target"));
//强制创建文件目录,如果文件存在,会抛出异常
FileUtils.forceMkdir(new File("/target"));
//强制创建父级目录
FileUtils.forceMkdirParent(new File("/xxxx/target"));
//如果是文件,直接读取文件大小;如果是目录,级联计算文件下的所有文件大小
FileUtils.sizeOf(new File("/target"));//返回Long
FileUtils.sizeOfAsBigInteger(new File("/target"));//返回BigInteger
FileUtils.sizeOfDirectory(new File("/target"));
FileUtils.sizeOfDirectoryAsBigInteger(new File("/target"));
//对比文件新旧
FileUtils.isFileNewer(new File("/target"),new File("/file"));
FileUtils.isFileOlder(new File("/target"), new Date());
FileUtils.checksum(new File("/target"),new CRC32());
FileUtils.checksumCRC32(new File("/target"));
FileUtils.moveDirectory(new File("/target"),new File("/file"));
FileUtils.moveDirectoryToDirectory(new File("/target"),new File("/file"),true);
FileUtils.moveFile(new File("/target"),new File("/file"));
FileUtils.moveFileToDirectory(new File("/target"),new File("/dir"),true);
FileUtils.moveToDirectory(new File("/target"),new File("/dir"),true);
FileUtils.isSymlink(new File("/target"));
}
@Test
public void findFiles(){
//返回文件的列表
List<File> files = (List<File>) FileUtils.listFiles(parent,new String[]{"test1","test2"},true);//TODO 重点看一下源码
//返回文件迭代器
Iterator<File> files_iter = FileUtils.iterateFiles(parent,new String[]{"test1","test3"},true);
//把collection<File>转换成File[]
FileUtils.convertFileCollectionToFileArray(files);
}
FileUtils工具类的使用方法相关推荐
- ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。
DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...
- javaSE commons-io第三方插件, FileUtils工具类,复制文件夹、文件,写入/读取文件
commons-io插件下载:https://pan.baidu.com/s/16-lyGR0KKp943pIOCYTVcg 密码:x1t9 在项目中导入classpath: 1.创建lib文件夹 ...
- 最简单的文件上传--FileUtils工具类
(文件上传的方法各有不同,这里挑了一个最为简单实用的分享给大家,后续会更新其他版本的文件上传和下载功能) 一.前台页面准备 二.后台代码配合 public class FileUpload exten ...
- 第三次学JAVA再学不好就吃翔(part87)--Arrays工具类的asList方法
学习笔记,仅供参考,有错必纠 Arrays工具类的asList方法 方法概述 public static <T> List<T> asList(T... a) 返回一个受指定数 ...
- java.util.zip 用法,Java压缩文件工具类ZipUtil使用方法代码示例
本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下: package com.utility.zip; import java.io. ...
- 分页封装实用工具类及其使用方法
分页封装实用工具类及其使用方法 作者: javaboy2012 Email:yanek@163.com qq: 1046011462 package com.yanek.util; import ...
- HttpClient Utils工具类的编写方法分享
转自: HttpClient Utils工具类的编写方法分享 HttpClient简介: HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功 ...
- FileUtils工具类详解
FileUtils org.apache.commons.io.FileUtils 下载地址:commons-io Maven依赖 <dependency><groupId>c ...
- ssm整合oracle分页,java实现ssm分页工具类及其使用方法
分享一下我现在所使用的分页工具类,不像网上的那么规范 纯属自己总结根据逻辑敲出来的,基于mysql的limit来做分页.有不对的地方还望大佬指出,直接上代码 PageTools package com ...
最新文章
- putty ubuntu服务器 上传文件,教你如何使用PuTTY上传文件?
- 英语语法---不定式短语详解
- ITK:在图像上叠加标签图
- Linux静默安装oracle
- POJ2676Sudoku
- LeetCode 96——不同的二叉搜索树
- 分布式一致性算法-paxos详解与分析
- Flutter 自定义 ImageButton
- SpringBoot + QueryDSL 大大简化复杂查询操作
- 从基础描述无刷直流电机的工作原理
- ipad的正确使用方法视频,ipad的正确使用方法图解
- SSM+高校学生综合评测系统 毕业设计-附源码200851
- win7系统备份还原软件_十分不错的系统还原工具 一键还原备份系统软件 一键还原备份SGIMINI4.0通用版本...
- asp.net MVC三层结构代码生成器
- Fiddler简介与功能
- 疫情过后:表面一切照旧,暗里风起云涌!
- 如何用php算出你活了天,按日子来做活儿——第一个Blog DayHappy Day
- 洛谷P1606 Lilypad Pond G
- 解决package jdk1.8-2000:1.8.0_171-fcs.x86_64 is already installed问题
- C++最小二乘拟合 (高阶最小二乘拟合)(附C++代码)
热门文章
- 2022年哪些音质蓝牙耳机比较好?超棒音质蓝牙耳机推荐
- 第二十四天:HäirIÖ: Human Hair as Interactive Material. TEI2018
- java 猜数字游戏
- Leetcode75. 颜色分类
- matlab 圆度误差,用MATLAB评定圆度误差的研究
- js判断是否是Json对象
- 黑苹果 bigsur 11.1 系统SIP权限解锁
- 抖音死亡计算机在线测,抖音死亡计算器怎么用?抖音死亡计算器测试入口介绍...
- PHP中如何替换2个反斜杠的转义字符
- 无需绑定设备,下载google play的apk