Commons包的API:自己查吧懒得传云

Commons包的导入方法

Commons是一个java的IO开源工具,导入方法:

  1. 从apache.org下载commons包
  2. 解压
  3. copy其中的commons-io-2.6-sources.jar与commons-io-2.6.jar
  4. 在eclipse的项目中新建一个文件夹lib,粘贴jar包
  5. 右键jar包,buildPath

Commons包的核心方法s

1-?为FileUtils类下的方法,请用FileUtis.方法名调用。

1.sizeOf方法

返回文件或文件夹的大小

long sizeOf(File f)

 实例:

public static void fileSize(){
//文件大小方法
long len = FileUtils.sizeOf(new File("src/com/xiaohei/test/Empty.java"));
System.out.printf("文件大小:%d%n",len);
//文件夹大小
long len2 = FileUtils.sizeOf(new File("lib"));
System.out.printf("文件夹大小:%d%n",len2);
}

  

2.listFile方法

有条件的列出子孙集,返回的是一个集合

Collection<File> listFile(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter) 

 参数:

  • 第一个参数:文件夹File
  • 第二个参数:文件过滤器
    • EmptyFileFilter.EMPTY 筛选空文件(文件大小为0)入集合
    • EmptyFileFilter.NOT_EMPTY 筛选非空文件入集合
    • new SuffixFileFilter("后缀名") 筛选符合后缀条件的文件入集合
    • FileFilterUtils.or(条件1,条件2,...) 如:FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")) 筛选后缀为java或class的文件入集合
    • FileFilterUtils.and(条件1,条件2,...) 如:FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.EMPTY) 筛选后缀为java且为空的文件入集合
  • 第三个参数:文件夹过滤器
    • null 只返回第一个参数下的一层里符合参数二条件的文件
    • DirectoryFileFilter.INSTANCE 返回第一个参数下的符合第二个参数限制的所有子孙集文件
public static void listFl(){
// list<File> listFile(路径,文件过滤器,文件夹过滤器)
Collection<File> files = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),EmptyFileFilter.NOT_EMPTY,DirectoryFileFilter.INSTANCE);
System.out.println("--------EmptyFileFilter.NOT_EMPTY,DirectoryFileFilter.INSTANCE------------");
for(File file : files){
System.out.println(file.getAbsolutePath());
} Collection<File> files2 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),EmptyFileFilter.EMPTY,DirectoryFileFilter.INSTANCE);
System.out.println("--------EmptyFileFilter.EMPTY,DirectoryFileFilter.INSTANCE------------");
for(File file : files2){
System.out.println(file.getAbsolutePath());
} Collection<File> files3 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),new SuffixFileFilter("java"),DirectoryFileFilter.INSTANCE);
System.out.println("--------SuffixFileFilter(\"后缀java\"),DirectoryFileFilter.INSTANCE------------");
for(File file : files3){
System.out.println(file.getAbsolutePath());
} Collection<File> files4 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),
FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")),
DirectoryFileFilter.INSTANCE);
System.out.println("--------FileFilterUtils.or(后缀java,后缀class,...),DirectoryFileFilter.INSTANCE------------");
for(File file : files4){
System.out.println(file.getAbsolutePath());
} Collection<File> files5 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),
FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.EMPTY),
DirectoryFileFilter.INSTANCE);
System.out.println("--------FileFilterUtils.and(后缀java,文件为空,...),DirectoryFileFilter.INSTANCE------------");
for(File file : files5){
System.out.println(file.getAbsolutePath());
}
}

  

3.读取文件的相关方法

  1. readFileToString方法
  2. readFileToByteArray方法
  3. readLines方法:逐行读取
  4. lineIterator方法:迭代器逐行读取
public static void readFile() throws IOException{
System.out.println("--------readFileToString方法------");
String str = FileUtils.readFileToString(new File("readFile.txt"),"gbk");
System.out.println(str); System.out.println("--------readFileToByteArray方法------");
byte[] content = FileUtils.readFileToByteArray(new File("readFile.txt"));
System.out.println("输出数组的长度:"+content.length); System.out.println("--------readLines方法:逐行读取------");
List<String> msgs = FileUtils.readLines(new File("readFile.txt"));
for(String m : msgs){
System.out.println(m);
} System.out.println("--------lineIterator方法:迭代器逐行读取------");
LineIterator it = FileUtils.lineIterator(new File("readFile.txt"));
while(it.hasNext()){
System.out.println(it.nextLine());
}
}

  

4.写入文件的相关方法

  1. write方法
  2. writeByteArrayToFile方法
  3. writeLine方法
public static void writeFile() throws IOException{
//写入文件
System.out.println("----------write方法---------------");
FileUtils.write(new File("writeFile.txt"),"这里是写入的内容","UTF-8",true);//有关文件的操作都要习惯的写上字符集
System.out.println("------------writeByteArrayToFile方法--------------");
FileUtils.writeByteArrayToFile(new File("writeFile1.txt"),"这里是写入的内容".getBytes("UTF-8"),true);//有关文件的操作都要习惯的写上字符集
System.out.println("------------writeLine方法--------------");
List<String> datas = new ArrayList<String>();
datas.add("周杰伦");
datas.add("周星驰");
datas.add("周润发");
FileUtils.writeLines(new File("fileLine.txt"), datas,"--连接符---",true);
}

  

完整代码

package com.xiaohei.test;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.EmptyFileFilter;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.SuffixFileFilter; public class COMTest {
public static void main(String[] args) throws IOException{
//sizeOf方法:返回文件或文件夹大小
System.out.println("--------1.sizeOf方法--------------");
fileSize();
//listFile方法:返回子孙文件集
System.out.println("--------2.listFiles方法--------------");
listFl();
//读取文件内容方法
System.out.println("--------3.读取的相关方法--------------");
readFile();
//写出文件的相关方法
System.out.println("--------4.写出文件的相关方法--------------");
writeFile();
}
public static void fileSize(){
//文件大小方法
long len = FileUtils.sizeOf(new File("src/com/xiaohei/test/Empty.java"));
System.out.printf("文件大小:%d%n",len);
//文件夹大小
long len2 = FileUtils.sizeOf(new File("lib"));
System.out.printf("文件夹大小:%d%n",len2);
} public static void listFl(){
// list<> listFile(路径,文件过滤器,文件夹过滤器)
Collection<File> files = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),EmptyFileFilter.NOT_EMPTY,DirectoryFileFilter.INSTANCE);
System.out.println("--------EmptyFileFilter.NOT_EMPTY,DirectoryFileFilter.INSTANCE------------");
for(File file : files){
System.out.println(file.getAbsolutePath());
} Collection<File> files2 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),EmptyFileFilter.EMPTY,DirectoryFileFilter.INSTANCE);
System.out.println("--------EmptyFileFilter.EMPTY,DirectoryFileFilter.INSTANCE------------");
for(File file : files2){
System.out.println(file.getAbsolutePath());
} Collection<File> files3 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),new SuffixFileFilter("java"),DirectoryFileFilter.INSTANCE);
System.out.println("--------SuffixFileFilter(\"后缀java\"),DirectoryFileFilter.INSTANCE------------");
for(File file : files3){
System.out.println(file.getAbsolutePath());
} Collection<File> files4 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),
FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")),
DirectoryFileFilter.INSTANCE);
System.out.println("--------FileFilterUtils.or(后缀java,后缀class,...),DirectoryFileFilter.INSTANCE------------");
for(File file : files4){
System.out.println(file.getAbsolutePath());
} Collection<File> files5 = FileUtils.listFiles(new File("C:/Users/live/workspace/Connect"),
FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.EMPTY),
DirectoryFileFilter.INSTANCE);
System.out.println("--------FileFilterUtils.and(后缀java,文件为空,...),DirectoryFileFilter.INSTANCE------------");
for(File file : files5){
System.out.println(file.getAbsolutePath());
}
} /**
* 读取文件的方法
* @throws IOException
* */
public static void readFile() throws IOException{
System.out.println("--------readFileToString方法------");
String str = FileUtils.readFileToString(new File("readFile.txt"),"gbk");
System.out.println(str); System.out.println("--------readFileToByteArray方法------");
byte[] content = FileUtils.readFileToByteArray(new File("readFile.txt"));
System.out.println("输出数组的长度:"+content.length); System.out.println("--------readLines方法:逐行读取------");
List<String> msgs = FileUtils.readLines(new File("readFile.txt"));
for(String m : msgs){
System.out.println(m);
} System.out.println("--------lineIterator方法:迭代器逐行读取------");
LineIterator it = FileUtils.lineIterator(new File("readFile.txt"));
while(it.hasNext()){
System.out.println(it.nextLine());
}
}
/**
* 写出文件的相关方法
* @throws IOException
* */
public static void writeFile() throws IOException{
//写入文件
System.out.println("----------write方法---------------");
FileUtils.write(new File("writeFile.txt"),"这里是写入的内容","UTF-8",true);//有关文件的操作都要习惯的写上字符集
System.out.println("------------writeByteArrayToFile方法--------------");
FileUtils.writeByteArrayToFile(new File("writeFile1.txt"),"这里是写入的内容".getBytes("UTF-8"),true);//有关文件的操作都要习惯的写上字符集
System.out.println("------------writeLine方法--------------");
List<String> datas = new ArrayList<String>();
datas.add("周杰伦");
datas.add("周星驰");
datas.add("周润发");
FileUtils.writeLines(new File("fileLine.txt"), datas,"--连接符---",true);
}
}

  

19 IO流(十六)——Commons工具包,FileUtils(一)的更多相关文章

  1. Java IO(十六)InputStreamReader 和 InputStreamWriter

    Java IO(十六)InputStreamReader 和 InputStreamWriter 一.介绍 InputStreamReader 和 OutputStreamWriter 是字节流通向字 ...

  2. Java中的IO流(六)

    上一篇<Java中的IO流(五)>把流中的打印流PrintStream,PrintWriter,序列流SequenceInputStream以及结合之前所记录的知识点完成了文件的切割与文件 ...

  3. java io流读取 和commons.io的使用

    前提:记事本里面一共有605个字 1.使用BufferedReader和FileReader来读取txt里面的内容,用时相对短.读完记得关闭流br.close() 2.指定UTF-8输出格式,使用Fi ...

  4. JAVA学习第五十二课 — IO流(六)File对象

    File类 用来给文件或者目录封装成对象 方便对文件与目录的属性信息进行操作 File对象能够作为參数传递给流的构造函数 一.构造函数和分隔符 public static void FileDemo( ...

  5. File类与常用IO流第六章——使用try...catch...finally处理流中的异常

    在JDK1.7之前: 1 package com.itheima.demo06.trycatch; 2 3 import java.io.FileWriter; 4 import java.io.IO ...

  6. J06-Java IO流总结六 《 BufferedReader和BufferedWriter 》

    1. 概念简介 与字节缓冲流BufferedInputStream和BufferedOutputStream对应的,我们还有字符缓冲流BufferedReader和BufferedWriter,顾名思 ...

  7. 09 IO流(六)——ByteArray字节流、流对接

    字节数组流 ByteArray流是节点流. 前面讲到的文件字节流,文件字符流,他们的源都是来自于pc硬盘. 本节要讲的字节数组流的源是来自于内存或网络. 它更合适用来处理来自网络的字节流. 由于源并不 ...

  8. (19)IO流之字符流FileReader和FileWriter,缓冲字符流---缓冲输入字符流BufferedReader和缓冲输出字符流BufferedWriter

    字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流: ...

  9. java IO流 (六) 其它的流的使用

    1. 标准的输入输出流:System.in:标准的输入流,默认从键盘输入System.out:标准的输出流,默认从控制台输出 修改默认的输入和输出行为:System类的setIn(InputStrea ...

随机推荐

  1. learning java FileInputStream

    public class FileInputStreamTest { public static void main(String[] args) throws IOException { var f ...

  2. 使用nodejs+ harbor rest api 进行容器镜像迁移

    最近因为基础设施调整,需要进行harbor 镜像仓库的迁移,主要是旧版本很老了,不想使用,直接 打算部署新的,原以为直接使用复制功能就可以,但是发现版本差异太大,直接失败,本打算使用中间 版本过度进行 ...

  3. Python 06 Geany的基本使用2

    原文:https://www.cnblogs.com/denny402/p/5096001.html 功能:打开图片 1.下载库 pip install matplotlib 2.编写代码,将代码粘贴 ...

  4. 洛谷 P1012 拼数

    P1012 拼数 标签 字符串 排序 NOIp提高组 1998 云端 难度 普及- 时空限制 1s / 128MB 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例 ...

  5. 洛谷 P3380 【模板】二逼平衡树(树套树)-线段树套splay

    P3380 [模板]二逼平衡树(树套树) 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 查询k在区间内的排名 查询区间内排名为k的值 修改某一位值上的数 ...

  6. python 运行当前目录下的所有文件

     查看当前目录下所有py文件(本身除外run) import os file_list = os.listdir(os.getcwd()) # 获取当前目录下所有的文件名print(file_list ...

  7. 项目启动tomcat失败的几种可能原因和解决方法

    传送门:https://blog.csdn.net/u010565910/article/details/80411468 总结一下tomcat启动问题,也给自己做个笔记 , 逐渐补充完善. 1.ja ...

  8. Use of Time-series Based Forecasting Technique for Balancing Load and Reducing Consumption of Energy in a Cloud Data Center

    年份:2017 摘要: 由于工作负载分配不均,一些服务器变得过载,而另一些服务器仍处于欠载状态. 为了实现负载平衡,需要从过度使用的节点迁移一些虚拟机. 但是与此不同的是,本文提出了一种负载预测算法, ...

  9. 关于js.map以及css.map

    什么是source map文件. source map文件是js文件压缩后,文件的变量名替换对应.变量所在位置等元信息数据文件,一般这种文件和min.js主文件放在同一个目录下. 比如压缩后原变量是m ...

  10. Can not add Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject.

    https://blog.csdn.net/zhouyingge1104/article/details/83307637 C#项目中使用NewtonSoft.json,报错提示: Can not a ...