Java——commons-io组件的环境搭建与简单使用
一、commons-io组件的环境搭建
commons-io组件是apache里面的一个组件,组件的也就是jar包的集合。使用来简化我们io操作的。
说起apache,不得不去夸一下这个组织,我们在以后的学习中很多开源的框架都来源于apache,这个组织是不盈利的,有很多大公司,比如阿里里巴巴,会将一些开源的代码交给apache发布。这些代码框架都是免费使用的…
1)下面我们来看一下使用idea搭建这个io组件:
①下载:重要的事情说三遍!!一定要记住这个网站!
选择commons
选择IO
点击下载
下载
②搭建:解压—>拷贝jar包到项目中去
将commons-io添加到构建路径中
搭建完成之后我们就可以使用其工具类了。
二、FileUtils的简单使用
①获取文件/文件夹的大小
//1.获取文件大小
long l = FileUtils.sizeOf(new File("a.txt"));
System.out.println(l);
//2.获取文件夹大小
long l1 = FileUtils.sizeOf(new File("E:\\IdeaProjects\\MyJavaProjects001"));
System.out.println(l1);
②获取内层目录与文件
public static void main(String[] args) {
//封装文件夹
File file = new File("E:\\IdeaProjects\\MyJavaProjects001");
//获取其子孙集,返回的是Collection集合。
//参数一:文件 参数二:文件过滤器 参数三:目录过滤器
//EmptyFileFilter.NOT_EMPTY:非空文件 new SuffixFileFilter(".java"):后缀为.java的文件
//DirectoryFileFilter.INSTANCE:全部子孙集
Collection<File> files = FileUtils.listFiles(file, new SuffixFileFilter(".java"), DirectoryFileFilter.INSTANCE);
//遍历集合取出其路径
for (File f : files) {
System.out.println(f.getAbsolutePath());
}
}
③读内容
public static void main(String[] args) throws IOException {
//两个参数:参数一:文件
// 参数二:字符集
String s = FileUtils.readFileToString(new File("a.txt"), "UTF-8");
System.out.println(s);
System.out.println("-----这是一条华丽的分割线-----");
//读内容到字节数组
byte[] bytes = FileUtils.readFileToByteArray(new File("a.txt"));
System.out.println(bytes.length);
System.out.println("-----这是一条华丽的分割线-----");
//逐行读取
List<String> list = FileUtils.readLines(new File("a.txt"), "UTF-8");
for (String string : list) {
System.out.println(string);
}
System.out.println("-----这是一条华丽的分割线-----");
//迭代器读取
LineIterator iterator = FileUtils.lineIterator(new File("a.txt"), "utf-8");
while (iterator.hasNext()){
System.out.println(iterator.nextLine());
}
}
④写内容
public static void main(String[] args) throws IOException {
//1.写入字符串
//四个参数
// 参数一:文件
// 参数二:写入的字符串
// 参数三:字符集
// 参数四:是否追加写入(默认为false)
FileUtils.write(new File("b.txt"),"我们都是祖国的花朵","UTF-8",true);
FileUtils.write(new File("b.txt"),"祖国的未来需要我们","UTF-8",true);
//2.写入字节数组
// 参数一:文件
// 参数二:写入的字节数组
// 参数三:是否追加写入
FileUtils.writeByteArrayToFile(new File("c.txt"),"西安邮电大学".getBytes(),true);
//3.写入列表
ArrayList<String> list = new ArrayList<>();
list.add("西安");
list.add("北京");
list.add("上海");
// 参数一:文件
// 参数二:字符集
// 参数三:要写入的列表
// 参数四:连接符
// 参数五:是否追加写入
FileUtils.writeLines(new File("d.txt"),"UTF-8",list,"===",true);
}
⑤复制文件(重要)
public static void main(String[] args) throws IOException {
/**
* 一、复制文件
*/
//1.复制文件
FileUtils.copyFile(new File("a.txt"),new File("aaaaa.txt"));
//2.复制文件到某个文件夹
FileUtils.copyFileToDirectory(new File("a.txt"),new File("E:\\IdeaProjects\\MyJavaProjects001\\lib"));
/**
* 二、复制文件夹
*/
//封装原文件路径和新文件路径
File oldFile = new File("E:\\IdeaProjects\\MyJavaProjects001\\src\\IOUtils");
File newFile = new File("E:\\IdeaProjects\\MyJavaProjects001\\src\\IOUtils");
//1.复制文件夹
FileUtils.copyDirectory(oldFile,newFile);
//2.复制文件夹到某个文件夹
FileUtils.copyDirectoryToDirectory(oldFile,newFile);
}