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 ...
随机推荐
- python笔记-正则表达式
什么是正则表达式: 正则表达式是一个特殊的字符序列,能帮助我们方便的检查一个字符串是否与某种模式匹配(定义往往都很枯燥) 也称之为”模式“,即可用于检查一个给定的字符串是否符合某种模式 举例: 我们定 ...
- Unity3D如何有效地组织代码?
本文整理自知乎,原文链接:http://www.zhihu.com/question/21070379 问题: Unity3D可以说是高度的Component-Based Architecture,同 ...
- C++ —— 输出100以内的质数
代码如下: #include<iostream> #include<math.h> using namespace std; int main() { int i; for(i ...
- Cocos Creator 性能优化:DrawCall
前言 在游戏开发中,DrawCall 作为一个非常重要的性能指标,直接影响游戏的整体性能表现. 无论是 Cocos Creator.Unity.Unreal 还是其他游戏引擎,只要说到游戏性能优化,D ...
- agumaster 分页方案
本文例程下载:https://files.cnblogs.com/files/xiandedanteng/agumaster20200430-1.zip 之前的分页方案有点小瑕疵,这回修正了一下. 控 ...
- Zookeeper源码解读
1.1. 客户端源码 1.1.1. 总体流程 启动客户端 zkCli.sh文件里面的配置 实际运行 public static void main(String args[]) throws Keep ...
- 在Linux命令行里与其他用户通信
大家好,我是良许 在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用.因此,我挑选了四种常用的 Linux 用户通信命令分享给 ...
- composer 三大组成部分
composer 三大组成部分:1. 仓库 2. 命令行下载器 3. 自动加载. 1. 仓库 公有仓库 https://packagist.org 私有仓库 https://packagist.com ...
- Jack Straws(POJ 1127)
原题如下: Jack Straws Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5555 Accepted: 2536 ...
- Dos拒绝服务攻击DNS、SNMP、NTP放大攻击和slowhttptest攻击工具(三)
DNS放大攻击产生大流量的攻击方式 udpDNS放大效果-查询请求流量小,但响应流量可能非常巨大-dig ANY baidu.com @1.1.1.1 //向1.1.1.1的服务器查询域名解析,流量放 ...