commons-lang3(常用)

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方法

返回文件或文件夹的大小

1
long sizeOf(File f)

 实例:

1
2
3
4
5
6
7
8
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方法

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

1
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 返回第一个参数下的符合第二个参数限制的所有子孙集文件

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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方法:迭代器逐行读取
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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方法
1
2
3
4
5
6
7
8
9
10
11
12
13
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);
    }

  

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
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);
    }
}

 
posted @ 2021-06-06 08:34  chen1777  阅读(492)  评论(0)    收藏  举报