FileUtils常用方法 - commons-io常用工具类
FileUtils常用常量
public static final long ONE_KB = 1024; public static final BigInteger ONE_KB_BI = BigInteger.valueOf(ONE_KB); public static final long ONE_MB = ONE_KB * ONE_KB; public static final BigInteger ONE_MB_BI = ONE_KB_BI.multiply(ONE_KB_BI); private static final long FILE_COPY_BUFFER_SIZE = ONE_MB * 30; public static final long ONE_GB = ONE_KB * ONE_MB; public static final BigInteger ONE_GB_BI = ONE_KB_BI.multiply(ONE_MB_BI); public static final long ONE_TB = ONE_KB * ONE_GB; public static final BigInteger ONE_TB_BI = ONE_KB_BI.multiply(ONE_GB_BI); public static final long ONE_PB = ONE_KB * ONE_TB; public static final BigInteger ONE_PB_BI = ONE_KB_BI.multiply(ONE_TB_BI); public static final long ONE_EB = ONE_KB * ONE_PB; public static final BigInteger ONE_EB_BI = ONE_KB_BI.multiply(ONE_PB_BI); public static final BigInteger ONE_ZB = BigInteger.valueOf(ONE_KB).multiply(BigInteger.valueOf(ONE_EB)); public static final BigInteger ONE_YB = ONE_KB_BI.multiply(ONE_ZB); public static final File[] EMPTY_FILE_ARRAY = new File[0];
FileUtils常用方法
FileUtils.getFile => 获取指定文件
File file = FileUtils.getFile("D://test/test1/123.txt");
FileUtils.getFile => 获取指定目录下的:"lalala.txt", "lalala2.txt"
File file1 = FileUtils.getFile(new File("D://test/test1"), "123.txt", "456.txt");
FileUtils.getTempDirectoryPath => 获取临时目录 File对象
File tempDirectory = FileUtils.getTempDirectory();
FileUtils.getTempDirectoryPath => 获取临时目录路径字符串
System.out.println(FileUtils.getTempDirectoryPath());
// C:\Users\han\AppData\Local\Temp\
FileUtils.getUserDirectory => 获取用户主目录 File对象
File userDirectory = FileUtils.getUserDirectory();
FileUtils.getUserDirectoryPath => 获取用户主目录路径字符串
System.out.println(FileUtils.getUserDirectoryPath());
// C:\Users\Administrator
FileUtils.byteCountToDisplaySize => 以可读的方式,返回文件的大小EB, PB, TB, GB, MB, KB or bytes
System.out.println(FileUtils.byteCountToDisplaySize(10000000)); // 9 MB
System.out.println(FileUtils.byteCountToDisplaySize(1)); // 1 bytes
FileUtils.sizeOf => 读取文件大小
FileUtils.sizeOf(new File("D://test/test1"));//返回Long
FileUtils.sizeOfAsBigInteger(new File("D://test/test1"));//返回BigInteger
FileUtils.sizeOfDirectory => 目录,级联计算文件下的所有文件大小
FileUtils.sizeOfDirectory(new File("D://test/test1"));//返回Long
FileUtils.sizeOfDirectoryAsBigInteger(new File("D://test/test1"));//返回BigInteger
FileUtils.copyDirectory => 复制文件夹(文件夹里面的文件内容也会复制)
String filePath1 = "D://test/test1" ;
File srcDir = new File( filePath1 ) ; String filePath2 = "D://test/test2" ;
File destDir = new File( filePath2 ) ; try {
//复制文件夹
FileUtils.copyDirectory(srcDir, destDir);
} catch (IOException e) {
e.printStackTrace();
}
FileUtils.copyDirectoryToDirectory => 此方法将目录1所有的文件夹及文件复制到目录2下,如果有同名文件夹则合并,如果有同名文件则替换
try {
//复制文件夹
FileUtils.copyDirectoryToDirectory(srcDir, destDir);
} catch (IOException e) {
e.printStackTrace();
}
FileUtils.copyDirectory => 复制文件夹,带有文件过滤功能
try {
///仅仅拷贝目录
FileUtils.copyDirectory(srcDir, destDir, DirectoryFileFilter.DIRECTORY);
} catch (IOException e) {
e.printStackTrace();
} 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.openInputStream => 获取文件输入流
InputStream in = FileUtils.openInputStream(new File("D://test/test1"));
FileUtils.openOutputStream => 获取文件输出流
OutputStream out = FileUtils.openOutputStream(new File("D://test/test2"));
out = FileUtils.openOutputStream(new File("D://test/test3"), true);//是否追加的形式添加内容
FileUtils.touch => 创建文件,如果文件存在则更新时间;如果不存在,创建一个空文件
FileUtils.touch(new File("D://test/test4"));
FileUtils.contentEquals => 文件内容的对比
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);//忽略换行符,第三个参数是字符集
FileUtils.toFile => 根据URL获取文件
//FileUtils.toFile(URL url)使用相对路径创建一个File对象
String data = FileUtils.readFileToString(FileUtils.toFile(
AjavaURLToFile.class.getResource("/ajava.txt")));
System.out.println("data = " + data); //FileUtils.toFile(URL url)使用绝对路径创建一个File对象
File file = FileUtils.toFile(new URL("file://D:/ajavademo.txt"));
data = FileUtils.readFileToString(file);
System.out.println("data = " + data);
FileUtils.toFiles => 根据多个URL获取多个文件文件,返回File[]数组
// File[] toFiles(final URL[] urls)
FileUtils.toFiles(null);
FileUtils.toURLs => 文件地址转为URL
FileUtils.toURLs(new File[]{new File("D://test/test1")});
FileUtils.copyFileToDirectory => 此方法将b文件夹下的123.txt拷贝到指定文件夹下,如果有同名文件则替换,前者没有报错,后者没有新建
FileUtils.copyFileToDirectory(
new File("C://Users/han/Desktop/新建文件夹/123/123.txt"),
new File("C://Users/han/Desktop/新建文件夹/456")
);
FileUtils.copyFile => 此方法将b文件夹下a.doc拷贝到mm下a.doc,前者不存在会报错,后者不存在会新建,如果后者存在同名文件则替换
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"));//与上边功能一样
FileUtils.copyInputStreamToFile => 此方法将输入流的内容复制到新文件
FileUtils.copyInputStreamToFile(new FileInputStream("D://test/test1"), new File("D://test/test1"));
FileUtils.copyUrlToFile => 此方法URL对应的文件复制一份
FileUtils.copyURLToFile(new URL("file:/test"), new File("D://test/test1"));
FileUtils.deleteDirectory => 删除目录或文件,无法删除会抛异常
FileUtils.deleteDirectory(new File("D://test/test1"));//递归删除目录
FileUtils.deleteQuietly => 安静删除目录或文件,无法删除时也不会抛异常
FileUtils.deleteQuietly(new File("D://test/test1"));//如果是目录,会级联删除;不会抛出异常,安静删除
FileUtils.directoryContains => 判断是否包含文件或文件夹
//判断是否包含文件或者文件夹
boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("D:/cxyapi/cxyapi.txt"));
System.out.println(b);
FileUtils.cleanDirectory => 清除目录中的内容,不会删除该目录, 遍历目录中的文件,如果是目录则递归删除;如果是文件则强制删除,删除失败(文件不存在或无法删除)都会抛出异常
FileUtils.cleanDirectory(new File("D://test/test1"));
FileUtils.waitFor => 等待一个文件xx秒,知道文件创建后才返回。每max(100,remainning)循环检查一次
while (FileUtils.waitFor(new File("D://test/test1"), 60)) {}
FileUtils.readFileToString => 读取目标文件,返回文件内容字符串
String str = FileUtils.readFileToString(new File("D://test/test1"), "utf-8");
FileUtils.readFileToByteArray => 读取目标文件,返回文件内容的bytes数组
byte[] bytes = FileUtils.readFileToByteArray(new File("D://test/test1"));
FileUtils.readLines => 读取目标文件每一行数据,返回list
List<String> strs = FileUtils.readLines(new File("D://test/test1"), "utf-8");
FileUtils.lineIterator => 读取目标文件每一行数据,返回迭代器
FileUtils.lineIterator(new File("D://test/test1"), "utf-8");
FileUtils.writeStringToFile => 将字符串写入文件,[目标文件] [写入的字符串] [字符集] [是否追加]
FileUtils.writeStringToFile(new File("D://test/test1"), "string", "utf-8", true);
write可以接受charsequence类型的数据,string,stringbuilder和stringbuffer都是实现了charsequence接口
FileUtils.write(new File("D://test/test1"), "target char sequence", "utf-8", true);
FileUtils.writeByteArrayToFile(new File("D://test/test1"), "bytes".getBytes());//(file,字符数组)
FileUtils.writeByteArrayToFile(new File("D://test/test1"), "bytes".getBytes(), true);//(file,字符数组,是否追加)
FileUtils.writeByteArrayToFile(new File("D://test/test1"), "bytes".getBytes(), 0, 10);//(file,字符数组,起始位置,结束位置)
FileUtils.writeByteArrayToFile(new File("D://test/test1"), "bytes".getBytes(), 0, 10, true);//(file,字符数组,起始位置,结束位置,是否追加)
FileUtils.writeLines => writeLines多了一个lineEnding参数
FileUtils.writeLines(new File("D://test/test1"), "utf-8", FileUtils.readLines(new File("D://test/test1"), "utf-8"));
FileUtils.forceDelete => 强制删除
FileUtils.forceDelete(new File("D://test/test1"));
FileUtils.forceDeleteOnExit => 当JVM退出时,把file对象删除。如果是目录对象则递归删除子目录,跟delete的区别是一个是立马执行 一个是JVM退出后执行 forceDeleteOnExit 这个用来删除临时文件或缓存文件用的
try {
File file2 = new File("C:\\Users\\Administrator\\Desktop\\sign\\");
//当JVM退出时,把file对象删除。如果是目录对象则递归删除子目录,跟delete的区别是一个是立马执行 一个是JVM退出后执行 forceDeleteOnExit 这个用来删除临时文件或缓存文件用的
FileUtils.forceDeleteOnExit(file2);
} catch (Exception e) {
e.printStackTrace();
}
FileUtils.forceMkdir => 强制创建文件目录,如果文件存在,会抛出异常
FileUtils.forceMkdir(new File("D://test/test1"));
FileUtils.forceMkdirParent => 强制创建父级目录
FileUtils.forceMkdirParent(new File("D://test/test1"));
checksum、checksumCRC32:类似于校验MD5和。如long csum = FileUtils.checksum(file, new CRC32()).getValue();,一般下载来一个文件后,为了安全可以校验一下
FileUtils.checksum(new File("D://test/test1"), new CRC32());
FileUtils.checksumCRC32(new File("D://test/test1"));
FileUtils.isSymlink => 确定指定的文件是否是符号链接而不是实际文件
FileUtils.isSymlink(new File("D://test/test1"));
FileUtils.moveDirectory => 移动目录,移动的目录位置如果存在同名目录会报错
FileUtils.moveDirectory(new File("D://test/test1"), new File("D://test/test1"));
FileUtils.moveDirectoryToDirectory => 移动目录到指定目录下,第3个参数为,目录不存在是否创建
FileUtils.moveDirectoryToDirectory(new File("D://test/test1"), new File("D://test/test1"), true);
FileUtils.moveDirectory => 移动文件,移动的文件位置如果存在同名文件会报错
FileUtils.moveFile(new File("D://test/test1/target"), new File("D://test/test1/file"));
FileUtils.moveFileToDirectory => 移动文件到指定目录下,第3个参数为,目录不存在是否创建
FileUtils.moveFileToDirectory(new File("D://test/test1/target"), new File("D://test/test1/dir"), true);
FileUtils.moveToDirectory => 将文件或目录移动到目标目录。
FileUtils.moveToDirectory(new File("D://test/test1/target"), new File("D://test/test1/dir"), true);
FileUtils.iterateFiles => 返回文件迭代器 [ 目录 ] [ 过滤器 ] [ 递归 ]
Iterator<File> files_iter = FileUtils.iterateFiles(new File("D://test"), new String[]{"test1", "test3"}, true);
FileUtils.listFiles => 返回文件的列表 [ 目录 ] [ 过滤器 ] [ 递归 ]
List<File> files = (List<File>) FileUtils.listFiles(new File("D://test"), new String[]{"doc"}, true);// 列出该目录下的所有doc文件,递归(扩展名不必带.doc)
List<File> fileList = (List<File>)FileUtils.listFiles(dir,null,false);//列出该目录下的所有文件,不递归
FileUtils.convertFileCollectionToFileArray => 把collection<File>转换成File[]
FileUtils.convertFileCollectionToFileArray(files);
FileUtils.isFileOlder => 该文件是否在该时间之前创建
FileUtils.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))
FileUtils.innerListFiles => 根据一个过滤规则获取一个目录下的文件
FileUtils.validateListFilesParameters => 查找给定目录中的文件(以及可选的目录子目录)。所有找到的文件都由IOFileFilter过滤。
FileUtils.setUpEffectiveFileFilter => 返回一个过滤器,该过滤器除了接受给定过滤器接受的{@link File}对象外,还接受其他文件。
FileUtils.listFilesAndDirs => 查找给定目录中的文件(以及可选的目录子目录)。所有找到的文件都由IOFileFilter过滤。
FileUtils.iterateFilesAndDirs => 允许对给定目录中的文件进行迭代(可选)它的子目录)。
FileUtils.toSuffixes => 把指定的字符串数组变成后缀名格式字符串数组
FileUtils常用方法 - commons-io常用工具类的更多相关文章
- Apache Commons 常用工具类整理
其实一直都在使用常用工具类,只是从没去整理过,今天空了把一些常用的整理一下吧 怎么使用的一看就明白,另外还有注释,最后的使用pom引入的jar包 public class ApacheCommonsT ...
- 浅谈集合框架三、Map常用方法及常用工具类
最近刚学完集合框架,想把自己的一些学习笔记与想法整理一下,所以本篇博客或许会有一些内容写的不严谨或者不正确,还请大神指出.初学者对于本篇博客只建议作为参考,欢迎留言共同学习. 之前有介绍集合框架的体系 ...
- Java常用工具类之IO流工具类
package com.wazn.learn.util; import java.io.Closeable; import java.io.IOException; /** * IO流工具类 * * ...
- commons-lang3-3.2.jar中的常用工具类的使用
这个包中的很多工具类可以简化我们的操作,在这里简单的研究其中的几个工具类的使用. 1.StringUtils工具类 可以判断是否是空串,是否为null,默认值设置等操作: /** * StringUt ...
- Maven基础&&Spring框架阶段常用工具类整理
常用工具类 1.密码加密工具类: package com.itheima.utils; import java.security.MessageDigest; import sun.misc.BASE ...
- Android 常用工具类之SPUtil,可以修改默认sp文件的路径
参考: 1. 利用Java反射机制改变SharedPreferences存储路径 Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...
- javaweb常用工具类及配置文件备份
Javaweb常用工具类及配置文件备份 做一个代码备份,以后常用到的. hibernate工具类备份 package com.dly.service; /* * hibernate获取sessi ...
- [C#] 常用工具类——加密解密类
using System; using System.Configuration; using System.Collections.Generic; using System.Text; using ...
- [C#] 常用工具类——应用程序属性信息访问类
using System; using System.Collections.Generic; using System.Text; using System.Reflection; namespac ...
- [C#] 常用工具类——文件操作类
/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...
随机推荐
- windows程序快速启动的方式:WIN键+R
WIN键+R是windows快速启动程序的一种方式,一般能独立运行的程序都能以这种方式启动.如notepad.calc.explorer等程序. 在命令行方式下explorer加上不同的参数,会得到不 ...
- 在Rancher中修改K8S服务参数的万金油法则
作者简介 王海龙,Rancher中国社区技术经理,负责Rancher中国技术社区的维护和运营.拥有7年的云计算领域经验,经历了OpenStack到Kubernetes的技术变革,无论底层操作系统Lin ...
- router-link与router-view的对应关系和映射特点
router-link对应的router-view规律为: 1.根据to的值而定,值为一层(如 /child)则对应app.vue中的router-view: 值为两层,如 /second/child ...
- Matplotlib和Seaborn演示Python可视化
数据可视化:就是使用图形图表等方式来呈现数据,图形图表能够高效清晰地表达数据包含的信息. Seaborn是基于matplotlib,在matplotlib的基础上进行了更高级的API封装,便于用户可以 ...
- Java逻辑运算符&与&&
& 和&&的区别 && 短路与 ,一个条件不成立,跳出判断 & 与 , 全部判断 boolean b1 = false; int num = 9; if ...
- 15Java进阶 进程
1 线程控制 t.join():让主线程进入线程池,等待t执行完才执行. t.sleep():让线程阻塞,休眠一段时间,休眠结束后进入就绪状态.不会释放锁. t.yield():让线程让出CPU,从运 ...
- oracle Group by 分组查询后,分页
------------恢复内容开始------------ 1.分页查询 select count(*) times,title from menulog group by title order ...
- Java集合框架全解
Collection 集合 集合接口有2个基本方法: public interface Collection<E> { //向集合中添加元素.如果添加元素确实改变了集合就返回 true, ...
- 基于arduino UNO R3+ESP8266控制LED灯的开关(无USB转TTL工具实现)
最近由于项目要求,需要开发物联网云平台,而本人对硬件和通信技术一窍不通,故而选择arduino这一简单单片机来实现学习掌握基础的硬件和通信技术. 下面就是本人通过查阅大佬资料做的一个整合版本的通过手机 ...
- 【java基础】枚举
目录 枚举的定义 枚举的使用 原理 枚举的扩展 单例模式 避免反射攻击 反序列化 策略模式 总结 枚举的定义 public enum Color { Red,Blue,Green; } 枚举的使用 C ...