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 ...
随机推荐
- ABP VNext实践之搭建可用于生产的IdentityServer4
一.前言 用了半年多的abp vnext,在开发的效果还是非常的好,可以说节省了很多时间,像事件总线.模块化开发.动态API进行远程调用.自动API控制器等等,一整套的规范,让开发人员更方便的集成,提 ...
- Stack (30)(模拟栈,输出中间数用set)
Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...
- Mysql执行计划(大章)
Mysql的执行计划 执行计划是啥? 使用explain关键字可以模拟优化器执行SQL查询语句,从而知道Mysql是如何处理你的SQL语句的.分析你的查询语句或者表结构的性能瓶颈 语法 explain ...
- LAMP环境之编译安装httpd服务
“Apache HTTP Server”是开源软件项目的杰出代表,它基于标准的 HTTP 网络协议提供网页浏览服务. 在配置 Apache 网站服务之前,需要正确安装好 httpd 服务器软件.htt ...
- python图片转码为base64
import base64 def image_base64(): with open(image_path, 'rb', )as f: base64_data = base64.b64encode( ...
- html基础:js
js是一种脚本语言.在html中起到操控行为的作用.在html中,html代码如果是一个人的话,那么js就是这个人的行为 js在html的head中被引用,也可以在body中被引用.引用方式用< ...
- 关于如何设置IDEA中的servlet的模板
关于如何设置IDEA中的servlet的模板 点击左上角的File: Setting --> Editor --> File and Code Templates --> Other ...
- oracle之DML和DDL语句的其他用法
DML和DDL语句的其他用法 17.1 DML语句-MERGE 作用:把数据从一个表复制到另一个表,插入新数据或替换掉老数据. Oracle 10g中MERGE有如下一些改进: 1.UPDATE或IN ...
- [程序员代码面试指南]最长递增子序列(二分,DP)
题目 例:arr=[2,1,5,3,6,4,8,9,7] ,最长递增子序列为1,3,4,8,9 题解 step1:找最长连续子序列长度 dp[]存以arr[i]结尾的情况下,arr[0..i]中的最长 ...
- 三年之久的 etcd3 数据不一致 bug 分析
问题背景 诡异的 K8S 滚动更新异常 笔者某天收到同事反馈,测试环境中 K8S 集群进行滚动更新发布时未生效.通过 kube-apiserver 查看发现,对应的 Deployment 版本已经是最 ...