Java (三)APACHE Commons IO 常规操作
上一篇:Java (二)基于Eclipse配置Commons IO的环境
例1:查看文件、文件夹的长度(大小)。
1 import java.io.File;
2
3 import org.apache.commons.io.FileUtils;
4
5 public class Main {
6
7 public static void main(String[] args) {
8 long length = FileUtils.sizeOf(new File("J:/PrtSc/20190321/1.png"));
9 System.out.println(length);
10
11 length = FileUtils.sizeOf(new File("J:/PrtSc/20190321"));
12 System.out.println(length);
13
14 length = FileUtils.sizeOfDirectory(new File("J:/PrtSc/20190321"));
15 System.out.println(length);
16 }
17 }
控制台的输出:
23415
1015221
1015221
例2:列出指定目录下的非空文件。
1 import java.io.File;
2 import java.util.Collection;
3
4 import org.apache.commons.io.FileUtils;
5 import org.apache.commons.io.filefilter.EmptyFileFilter;
6
7 public class Main {
8
9 public static void main(String[] args) {
10 System.out.println(System.getProperty("user.dir") + "\n");
11
12 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), EmptyFileFilter.NOT_EMPTY, null);
13 for (File file: files1) {
14 System.out.println(file.getAbsolutePath());
15 }
16
17 System.out.println("\n" + new File("empty.txt").length() + " bytes");
18 }
19 }
因为empty.txt是一个空文件,所以不会被列出来。

控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project 0 bytes
如果向empty.txt写入内容,再次运行程序,empty.txt就会被列出。因为此时empty.txt不是一个空文件。

控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project
I:\Java\mycode\CommonsIO\empty.txt 47 bytes
例3:列出指定目录,以及其子目录下的非空文件。
1 import java.io.File;
2 import java.util.Collection;
3
4 import org.apache.commons.io.FileUtils;
5 import org.apache.commons.io.filefilter.DirectoryFileFilter;
6 import org.apache.commons.io.filefilter.EmptyFileFilter;
7
8 public class Main {
9
10 public static void main(String[] args) {
11 System.out.println(System.getProperty("user.dir") + "\n");
12
13 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);
14 for (File file: files1) {
15 System.out.println(file.getAbsolutePath());
16 }
17 }
18 }
控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\.classpath
I:\Java\mycode\CommonsIO\.project
I:\Java\mycode\CommonsIO\.settings\org.eclipse.jdt.core.prefs
I:\Java\mycode\CommonsIO\bin\com\mk\Main.class
I:\Java\mycode\CommonsIO\lib\commons-io-2.6-sources.jar
I:\Java\mycode\CommonsIO\lib\commons-io-2.6.jar
I:\Java\mycode\CommonsIO\src\com\mk\Main.java
例4.1:列出指定目录下,指定后缀的文件。
1 import java.io.File;
2 import java.util.Collection;
3
4 import org.apache.commons.io.FileUtils;
5 import org.apache.commons.io.filefilter.DirectoryFileFilter;
6 import org.apache.commons.io.filefilter.SuffixFileFilter;
7
8 public class Main {
9
10 public static void main(String[] args) {
11 System.out.println(System.getProperty("user.dir") + "\n");
12
13 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE);
14 for (File file: files1) {
15 System.out.println(file.getAbsolutePath());
16 }
17 }
18 }
控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\src\com\mk\Main.java
例4.2:列出指定目录下,指定后缀的文件。
1 import java.io.File;
2 import java.util.Collection;
3
4 import org.apache.commons.io.FileUtils;
5 import org.apache.commons.io.filefilter.DirectoryFileFilter;
6 import org.apache.commons.io.filefilter.FileFilterUtils;
7 import org.apache.commons.io.filefilter.SuffixFileFilter;
8
9 public class Main {
10
11 public static void main(String[] args) {
12 System.out.println(System.getProperty("user.dir") + "\n");
13
14 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), FileFilterUtils.or(new SuffixFileFilter("java"), new SuffixFileFilter("class")), DirectoryFileFilter.INSTANCE);
15 for (File file: files1) {
16 System.out.println(file.getAbsolutePath());
17 }
18 }
19 }
控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\bin\com\mk\Main.class
I:\Java\mycode\CommonsIO\src\com\mk\Main.java
例4.3:列出指定目录下,指定后缀的文件。
1 import java.io.File;
2 import java.util.Collection;
3
4 import org.apache.commons.io.FileUtils;
5 import org.apache.commons.io.filefilter.DirectoryFileFilter;
6 import org.apache.commons.io.filefilter.EmptyFileFilter;
7 import org.apache.commons.io.filefilter.FileFilterUtils;
8 import org.apache.commons.io.filefilter.SuffixFileFilter;
9
10 public class Main {
11
12 public static void main(String[] args) {
13 System.out.println(System.getProperty("user.dir") + "\n");
14
15 Collection<File> files1 = FileUtils.listFiles(new File(System.getProperty("user.dir")), FileFilterUtils.or(new SuffixFileFilter("java"), new SuffixFileFilter("class"), EmptyFileFilter.EMPTY), DirectoryFileFilter.INSTANCE);
16 for (File file: files1) {
17 System.out.println(file.getAbsolutePath());
18 }
19 }
20 }
控制台的输出:
I:\Java\mycode\CommonsIO I:\Java\mycode\CommonsIO\bin\com\mk\Main.class
I:\Java\mycode\CommonsIO\empty.txt
I:\Java\mycode\CommonsIO\src\com\mk\Main.java
例5.1:读取文本文档的内容。
1 import java.io.File;
2 import java.io.IOException;
3
4 import org.apache.commons.io.FileUtils;
5
6 public class Main {
7
8 public static void main(String[] args) throws IOException {
9 System.out.println(System.getProperty("user.dir") + "\n");
10
11 String message = FileUtils.readFileToString(new File("empty.txt"), "GBK");
12 System.out.println(message);
13 System.out.println();
14
15 byte[] bytes = FileUtils.readFileToByteArray(new File("empty.txt"));
16 System.out.println(bytes.length + " bytes");
17 System.out.println(new String(bytes));
18 }
19 }
控制台的输出:
I:\Java\mycode\CommonsIO 锄禾日当午
码农真辛苦
一段小字符
一写一下午 46 bytes
锄禾日当午
码农真辛苦
一段小字符
一写一下午
例5.2:逐行读取文本文档的内容。
1 import java.io.File;
2 import java.io.IOException;
3 import java.util.List;
4
5 import org.apache.commons.io.FileUtils;
6
7 public class Main {
8
9 public static void main(String[] args) throws IOException {
10 System.out.println(System.getProperty("user.dir") + "\n");
11
12 List<String> strings = FileUtils.readLines(new File("empty.txt"), "GBK");
13 for (String str: strings) {
14 System.out.println(str);
15 }
16 }
17 }
控制台的输出:
I:\Java\mycode\CommonsIO 锄禾日当午
码农真辛苦
一段小字符
一写一下午
例5.3:逐行读取文本文档的内容。
1 import java.io.File;
2 import java.io.IOException;
3
4 import org.apache.commons.io.FileUtils;
5 import org.apache.commons.io.LineIterator;
6
7 public class Main {
8
9 public static void main(String[] args) throws IOException {
10 System.out.println(System.getProperty("user.dir") + "\n");
11
12 LineIterator lineIterator = FileUtils.lineIterator(new File("empty.txt"), "GBK");
13 while (lineIterator.hasNext()) {
14 System.out.println(lineIterator.nextLine());
15 }
16 }
17 }
控制台的输出:
I:\Java\mycode\CommonsIO 锄禾日当午
码农真辛苦
一段小字符
一写一下午
例6.1:写内容到文件。
1 import java.io.File;
2 import java.io.IOException;
3
4 import org.apache.commons.io.FileUtils;
5
6 public class Main {
7
8 public static void main(String[] args) throws IOException {
9 System.out.println(System.getProperty("user.dir") + "\n");
10
11 FileUtils.write(new File("text.txt"), "Where ", "GBK", true);
12 FileUtils.writeStringToFile(new File("text.txt"), "are ", "GBK", true);
13 FileUtils.writeByteArrayToFile(new File("text.txt"), "we?".getBytes("GBK"), true);
14 }
15 }
运行程序,在工程目录下生成一个文件text.txt,内容:
Where are we?
例6.2:写内容到文件。
1 import java.io.File;
2 import java.io.IOException;
3 import java.util.ArrayList;
4 import java.util.List;
5
6 import org.apache.commons.io.FileUtils;
7
8 public class Main {
9
10 public static void main(String[] args) throws IOException {
11 System.out.println(System.getProperty("user.dir") + "\n");
12
13 List<String> str = new ArrayList<String>();
14 str.add("Bruce Wayne: I've had training.");
15 str.add("Ducard: The training is nothing! Will is everything! The will to act.");
16
17 FileUtils.writeLines(new File("text.txt"), str, "\r\n", false);
18 }
19 }
运行程序,在工程目录下生成一个文件text.txt,内容:
Bruce Wayne: I've had training.
Ducard: The training is nothing! Will is everything! The will to act.
下一篇:Java (四)APACHE Commons IO 复制文件
Java (三)APACHE Commons IO 常规操作的更多相关文章
- Java (四)APACHE Commons IO 复制文件
上一篇:Java (三)APACHE Commons IO 常规操作 例1:复制文件 1 import java.io.File; 2 import java.io.IOException; 3 4 ...
- java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream(转)
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream 使用Tomcat的Manag ...
- apache.commons.io.FileUtils的常用操作
至于相关jar包可以到官网获取 http://commons.apache.org/downloads/index.html package com.wz.apache.fileUtils; impo ...
- Tomcat中使用commons-io-2.5发生的错误java.lang.ClassNotFoundException: org.apache.commons.io.IOUtils
关键词:IntelliJ IDEA.Tomcat.commons-io-2.5.jar.java.lang.ClassNotFoundException: org.apache.commons.io. ...
- Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
1.错误叙述性说明 警告: Could not create JarEntryRevision for [jar:file:/D:/MyEclipse/apache-tomcat-7.0.53/web ...
- java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream at org.apach ...
- 报错:maven:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets
运行报错: maven:java.lang.NoClassDefFoundError: org/apache/commons/io/Charsets 找不到Charsets这个类 上网查了以后,是因为 ...
- java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream异常解决方法
使用Tomcat部署Servlet程序时,单步调试跟踪到: List<FileItem> itemList = sfu.parseRequest(request); 总是会报错:Java. ...
- apache commons io包基本功能
1. http://jackyrong.iteye.com/blog/2153812 2. http://www.javacodegeeks.com/2014/10/apache-commons-io ...
随机推荐
- LightOJ - 1214-Large Division(c++取模 + java的两种写法)
Given two integers, a and b, you should check whether a is divisible by b or not. We know that an in ...
- rabbitmq集成和实战
与 Spring 集成 pom 文件 使用 Maven,这里使用的 4.3.11,所以这里引入的是 rabbit 是 2.0.0,如果兼容性的话请自行去 Spring 的官网上去查 这里补充一下,sp ...
- Java 序列化界新贵 kryo 和熟悉的“老大哥”,就是 PowerJob 的序列化方案
本文适合有 Java 基础知识的人群 作者:HelloGitHub-Salieri HelloGitHub 推出的<讲解开源项目>系列. 项目地址: https://github.com/ ...
- IEDA使用Tomcat后控制台中文出现乱码
如下图所示,Intellij IDEA显示中文为乱码, 根据Intellij IDEA控制台输出,Tomcat Log出现乱码,因此可以将问题定位到Tomcat上,具体解决方法: 第一步:打开Tom ...
- PHP生成二维码 endroid/qr-code 扩展包
目录 1. 引入 endroid/qr-code 扩展包 2. 使用示例 3. 二维码中放入logo,无法识别二维码的问题 1. 引入 endroid/qr-code 扩展包 https://pack ...
- C#开发PACS医学影像处理系统(三):界面布局之工具栏
工具栏布局采用WPF中Grid作为容器,按钮采用自定义样式和图标,并采用Separator分割线: XAML设计器代码: 其中 Style="{StaticResource ButtonS ...
- Linux:正则表达式2
基础正则表达式 ^ : 以xx开头 $ :以xx结尾 ^$ :代表空行 . 任意一个字符 \ :转义符号,让有着特殊意义的字符可被使用 * :重复0个或多个前面的字符,例如 a* 2表示a后面 ...
- python中的n次方表示法 **n
例题:计算2的n次方,n由用户输入(N次方用**表示)# n=eval(input('手动输入n的值:')) #个人感觉,不确定是int还是float时,用eval来表示,eval后面接表达式# pr ...
- [剑指Offer]18-题目一:删除链表的节点 题目二:删除链表中重复节点
题目一 题目 O(1)时间复杂度删除给定链表节点. 题解 用待删除节点后一个节点的值覆盖待删除节点值,更新链接关系. 注意链表只有一个节点:删除尾结点:删除头节点的处理. 代码 class ListN ...
- [补题][Codeforces478D]Red-Green Towers(DP)
题目链接 http://codeforces.com/problemset/problem/478/D 题意 叠放塔:有红.绿两种色块.从第一层开始,第一层1块,第二层2块,第i层i块. 要求每一层只 ...