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 NIO 之 RandomFileChannel

    import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.i ...

  2. dbt 0.13.0 新添加特性sources 试用

    dbt 0.13 添加了一个新的功能sources 我呢可以用来做以下事情 从基础模型的源表中进行数据选择 测试对于源数据的假设 计算源数据的freshness source 操作 定义source ...

  3. Redis BGSAVE因为内存不足 fork 失败导致目标 Redis 无法访问的问题

    中秋的时候正在外面愉快的在外卖喝着咖啡玩电脑......突发 redis 报警从 sentry 应用端曝出的错误 MISCONF Redis is configured to save RDB sna ...

  4. 廖雪峰Python笔记

    △命令行模式和Python交互模式 在Windows开始菜单选择“命令提示符”,就进入到命令行模式,它的提示符类似C:\>:在命令行模式下敲命令python,就看到类似如下的一堆文本输出,然后就 ...

  5. nRF51822 硬件复位引脚

    nRF51822 有一个硬件复位引脚和Debug 口SWDIO是共用的,名字叫做nReset. 实现硬件复位是怎样子的: 1.这个引脚引出来, 2.给这个引脚低电平, 3.从低电平拉到高电平,即复位. ...

  6. HBase(一) —— 基本概念及使用

    一.安装&启动 下载 https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.1.8/ 快速开始文档,HBase2.1.8 http://hba ...

  7. 美团-2019Q2述职总结

    述职要求: 产品对平台化的规划并不清晰:内部因素:对SaaS平台的理解不够深刻: 对公司相关脚手架,服务搭建相关需要注意的点,有更深入的认识.对做系统服务的关注点有了更深入的理解. 功能权限的话: Q ...

  8. 剑指offer:数组中的逆序对

    题目描述: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%100 ...

  9. Oralce 如何将查询结果中的0转成空的

    我们遇到过大多的情况的需求是查询结果中空转为0,这个可以通过oracle的NVL()函数就可以搞定. 之前做报表客户有个需求,查询出结果为0 要转成空的,不显示0 那么在oracle有没有现成函数能搞 ...

  10. 使用create-react-app遇到问题解决方案汇总

    使用create-react-app时遇到Module not found问题 转 https://blog.csdn.net/wkq_1212/article/details/90291558 本来 ...