Apache Commons IO

在学习io流的时候研究(翻译)了一下这个,只有FileUtils的某些方法,并不全面,还请谅解

org.apache.commons.io

这个包下定义了基于 streams, readers, writers and files.的实用工具类.

org.apache.commons.io.comparator ##

这个包下定义了基于文件的各种比较器的实现

org.apache.commons.io.filefilter

这个包定义了一个接口(IoFielFieldField),融合了FieldField1和FielnaMeField.

org.apache.commons.io.input

这个包提供输入类的实现,如输入流和读取字符流。

org.apache.commons.io.monitor

这个包提供了一个用于监视文件系统事件(目录和文件创建、更新和删除事件)的组件。

org.apache.commons.io.output

这个包提供输出类的实现, 如输出流和写入流

org.apache.commons.io.serialization ##

这个包提供了一个用于控制类反序列化的框架。

FileUtils中的常用方法

package com.wzlove.commons;

import org.apache.commons.io.FileUtils;
import org.junit.Test; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List; /**
* 测试FileUtiles中的常用方法
*
* @author WZLOVE
* @create 2018-07-21 13:29
*/
public class FileUtilsDemo { /**
* static void cleanDirectory(File directory)
* 删除文件夹内的所有内容,但不删除本文件夹
*/
@Test
public void testCleanDirectory() throws IOException {
// 注意的是创建的文件夹的虚拟路径
File dir = new File("F:\\ddd\\aaa");
FileUtils.cleanDirectory(dir);
} /**
* static boolean contentEquals(File file1, File file2)
* 比较两个文件的内容是否相同,相同返回true,不同返回false(.注意的是两个文件不存在,也会返回true)
*/
@Test
public void testContentEquals() throws IOException {
File file1 = new File("F:\\ddd\\aaa\\a.txt");
File file2 = new File("F:\\ddd\\aaa\\b.txt");
System.out.println(FileUtils.contentEquals(file1,file2));
} /**
* static File[] convertFileCollectionToFileArray(Collection<File> files)
* 将集合转化为数组
*/
@Test
public void testConvertFileCollectionToFileArray(){
ArrayList<File> fileList = new ArrayList<>();
fileList.add(new File("C:\\aa"));
fileList.add(new File("D:\\aa"));
fileList.add(new File("E:\\aa"));
fileList.add(new File("F:\\aa"));
File[] files = FileUtils.convertFileCollectionToFileArray(fileList);
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getAbsolutePath());
}
} /**
* static void copyDirectory(File srcDir, File destDir)
* 将srcDir目录下的文件复制到destDir目录下,文件存在则不重复复制
* 还有很多重载的方法,可以传递文件过滤器等等
*/
@Test
public void testCopyDirectory() throws IOException {
File srcDir = new File("F:\\aaa");
File destDir = new File("F:\\bbb");
FileUtils.copyDirectory(srcDir,destDir);
} /**
* static void copyDirectoryToDirectory(File srcDir, File destDir)
* 将srcDir整个文件夹放在destDir的文件夹下
*/
@Test
public void testCopyDirectoryToDirectory() throws IOException {
File srcDir = new File("F:\\aaa");
File destDir = new File("F:\\bbb");
FileUtils.copyDirectoryToDirectory(srcDir,destDir);
} /**
* static void copyFile(File srcFile, File destFile)
* 将srcFile文件复制到destFile中,destFile不存在则会创建目标文件
*/
@Test
public void testCopyFile() throws IOException {
File srcDir = new File("F:\\aaa\\1.txt");
File destDir = new File("F:\\bbb\\a.txt");
FileUtils.copyFile(srcDir,destDir);
} /**
* static void copyFileToDirectory(File srcFile, File destDir)
* 将srcFile文件复制到destDir的目录下
*/
@Test
public void testCopyFileToDirectory() throws IOException {
File srcDir = new File("F:\\aaa\\1.txt");
File destDir = new File("F:\\bbb");
FileUtils.copyFileToDirectory(srcDir,destDir);
} /**
* static void copyToDirectory(File src, File destDir)
* 复制文件或者文件夹到目标文件夹下
*/
@Test
public void testCopyToDirectory() throws IOException {
File srcDir = new File("F:\\aaa");
File destDir = new File("F:\\bbb");
FileUtils.copyToDirectory(srcDir,destDir);
} /**
* static void copyURLToFile(URL source, File destination)
* Copies bytes from the URL source to a file destination.
*/
@Test
public void testCopyURLToFile() throws IOException {
File destination = new File("F:\\bbb\\baidu.txt");
FileUtils.copyURLToFile(new URL("http://ntlias-stu.boxuegu.com/#/index"),destination);
} /**
* static void deleteDirectory(File directory)
* 删除这个文件夹,全部删除,包括这个文件,和cleanDirectory方法做个对比
*/
@Test
public void testDeleteDirectory() throws IOException {
File directory = new File("F:\\bbb\\ccc");
FileUtils.deleteDirectory(directory);
} /**
* static boolean deleteQuietly(File file)
* 删除这个文件,不会抛出异常
*/
@Test
public void testDeleteQuietly() {
File directory = new File("F:\\bbb\\a.txt");
System.out.println(FileUtils.deleteQuietly(directory));
} /**
* static void forceMkdir(File directory)
* 创建文件夹,可以创建多级文件夹
*/
@Test
public void testForceMkdir() throws IOException {
File directory = new File("F:\\bbb\\ccc\\ddd\\aaa");
FileUtils.forceMkdir(directory);
} /**
* static void forceMkdirParent(File file)
* 为一个文件创建父路径,但不会创建这个文件(比较奇怪)
*/
@Test
public void testForceMkdirParent() throws IOException {
File directory = new File("F:\\bbb\\aaa\\ccc\\a.txt");
FileUtils.forceMkdirParent(directory);
} /**
* static String getUserDirectoryPath()
* 返回用户的主目录
*/
@Test
public void testGetUserDirectoryPath(){
String str = FileUtils.getUserDirectoryPath();
System.out.println(str);
} /**
* static void moveDirectory(File srcDir, File destDir)
* 修改文件名,将srcDir.getName()的文件名更改为destDir.getName(),如果文件名存在,报错
*/
@Test
public void testMoveDirectory() throws IOException {
File srcDir = new File("F:\\aaa");
File destDir = new File("F:\\ccc");
FileUtils.moveDirectory(srcDir,destDir);
} /**
* static void moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)
* 将src移动到destDir,后面的boolean表示是不是当destDir文件夹不存在时创建文件夹,false是不创建,true是创建
* 如果src不存在报错,如果src已经存在destDir中,则报错
*/
@Test
public void testMoveDirectoryToDirectory() throws IOException {
File srcDir = new File("F:\\bbb");
File destDir = new File("F:\\eee");
FileUtils.moveDirectoryToDirectory(srcDir,destDir,true);
} /**
* static void moveFile(File srcFile, File destFile)
* 修改文件名
* static void moveFileToDirectory(File srcFile, File destDir, boolean createDestDir)
* 移动一个文件到文件夹中,最后的参数为true表示如果destDir不存在的话则创建,为false则不创建
* static void moveToDirectory(File src, File destDir, boolean createDestDir)
* 移动文件或者文件夹到目标文件夹,最后的参数为true表示如果destDir不存在的话则创建,为false则不创建
*/ /**
* static FileInputStream openInputStream(File file)
* 返回文件字节输入流
*/
@Test
public void testOpenInputStream() throws IOException {
File file = new File("F:\\bbb\\1.txt");
FileInputStream fis = FileUtils.openInputStream(file);
// 可以进行字节流的读取操作 fis.close();
} /**
* static FileOutputStream openOutputStream(File file)
* 返回字节输出流,如果文件等多及目录不存在,则创建多级目录,目录存在,清空文件内容
*/ /**
* static FileOutputStream openOutputStream(File file, boolean append)
* 返回字节输出流,如果文件等多及目录不存在,则创建多级目录,如果目录存在,则不会清空内容,输出到文件的时候,会追加到原内容的后面
*/ /**
* static byte[] readFileToByteArray(File file)
* 读取文件,返回字节数组
*/
@Test
public void testReadFileToByteArray() throws IOException {
File file = new File("F:\\bbb\\1.txt");
byte[] bytes = FileUtils.readFileToByteArray(file);
System.out.println(new String(bytes));
} /**
* static String readFileToString(File file, String encoding)
* 按照指定编码格式读取文件
*/
@Test
public void testReadFileToString() throws IOException {
File file = new File("F:\\bbb\\1.txt");
String str = FileUtils.readFileToString(file,"UTF-8");
System.out.println(str);
} /**
* static List<String> readLines(File file, String encoding)
* 按照指定编码读取文件,返回String集合,文件的每一行是一个元素
*/
@Test
public void testReadLines() throws IOException {
File file = new File("F:\\bbb\\1.txt");
List<String> list = FileUtils.readLines(file, "UTF-8");
for (String s : list) {
System.out.println(s);
}
} /**
* static long sizeOf(File file)
* 返回文件或者文件夹的大小
*/
@Test
public void testSizeOf() throws IOException {
File file = new File("F:\\bbb\\1.txt");
long l = FileUtils.sizeOf(file);
System.out.println(l);
File file1 = new File("F:\\bbb");
System.out.println(FileUtils.sizeOf(file1));
} /**
* static File toFile(URL url)
* Convert from a URL to a File.
* 没理解
*/
@Test
public void testToFile() throws IOException {
File file = FileUtils.toFile(new URL("file:\\F:\\bbb"));
System.out.println(file.getAbsolutePath());
} /**
* static void writeByteArrayToFile(File file, byte[] data)
* 向文件中写入字节数组,如果目标文件不存在,则会创建目标文件,文件存在清空文件内容,再进行输入
* static void writeByteArrayToFile(File file, byte[] data, boolean append)
* 向文件中写入字节数组,如果目标文件不存在,则会创建目标文件,文件存在且最后一个参数是true,会将内容追加到原内容的后面
* static void writeByteArrayToFile(File file, byte[] data, int off, int len)
* 将byte类型的数组data,从off索引开始,长度为len的内容输出到指定的文件,如果目标文件不存在,则会创建目标文件,文件存在清空文件内容,再进行输入
* static void writeByteArrayToFile(File file, byte[] data, int off, int len, boolean append)
* 将byte类型的数组data,从off索引开始,长度为len的内容输出到指定的文件,如果目标文件不存在,则会创建目标文件,文件存在且最后一个参数是true,会将内容追加到原内容的后面
* static void writeStringToFile(File file, String data, String encoding)
* 按照指定的编码格式将String类型的数据写入到文件中,如果目标文件不存在,则会创建目标文件,文件存在清空文件内容,再进行输入
* static void writeStringToFile(File file, String data, String encoding, boolean append)
* 按照指定的编码格式将String类型的数据写入到文件中,如果目标文件不存在,则会创建目标文件,文件存在且最后一个参数是true,会将内容追加到原内容的后面
*/ /**
* static void writeLines(File file, Collection<?> lines)
* 将集合数据写入文件,每条数据占据一行,如果目标文件不存在,则会创建目标文件,文件存在清空文件内容,再进行输入
* static void writeLines(File file, Collection<?> lines, boolean append)
* 将集合数据写入文件,每条数据占据一行,
*/
@Test
public void testWriteLines() throws IOException {
File file = new File("F:\\ddd\\a.txt");
ArrayList<String> coll = new ArrayList<>();
coll.add("I love Java");
coll.add("I love you");
FileUtils.writeLines(file,coll);
} /**
* static void writeLines(File file, Collection<?> lines, String lineEnding)
* 所有的集合数据保存在一行,并且是间隔的,也就是每条集合数据后会跟一个lineEnding字符串,如果目标文件不存在,
* 则会创建目标文件,文件存在清空文件内容,再进行输入
* static void writeLines(File file, Collection<?> lines, String lineEnding, boolean append)
* 所有的集合数据保存在一行,并且是间隔的,也就是每条集合数据后会跟一个lineEnding字符串.如果目标文件不存在,
* 则会创建目标文件,文件存在且最后一个参数是true,会将内容追加到原内容的后面
*/
@Test
public void tesWriteLines2() throws IOException {
File file = new File("F:\\ddd\\a.txt");
ArrayList<String> coll = new ArrayList<>();
coll.add("I love Java");
coll.add("I love Java");
coll.add("I love Java");
FileUtils.writeLines(file,coll,"I love you");
} /**
* static void writeLines(File file, String encoding, Collection<?> lines)
* 按照encoding编码格式将集合数据写出到文件中,每条数据占据一行,如果目标文件不存在,
* 则会创建目标文件,文件存在清空文件内容,再进行输入
* static void writeLines(File file, String encoding, Collection<?> lines, boolean append)
* 按照encoding编码格式将集合数据写出到文件中,每条数据占据一行,如果目标文件不存在,
* 则会创建目标文件,文件存在且最后一个参数是true,会将内容追加到原内容的后面
*/
@Test
public void tesWriteLines3() throws IOException {
File file = new File("F:\\ddd\\a.txt");
ArrayList<String> coll = new ArrayList<>();
coll.add("I love Java");
coll.add("I love Java");
coll.add("I love Java");
FileUtils.writeLines(file,"UTF-8",coll);
} /**
* static void writeLines(File file, String encoding, Collection<?> lines, String lineEnding)
* 按照encoding编码格式将集合数据写出到文件中,所有的集合数据保存在一行,并且是间隔的,也就是每条集合数据后会跟一
* 个lineEnding字符串,如果目标文件不存在, 则会创建目标文件,文件存在清空文件内容,再进行输入
* static void writeLines(File file, String encoding, Collection<?> lines, String lineEnding, boolean append)
* 按照encoding编码格式将集合数据写出到文件中,所有的集合数据保存在一行,并且是间隔的,也就是每条集合数据后会跟一
* 个lineEnding字符串,如果目标文件不存在, 则会创建目标文件,文件存在且最后一个参数是true,会将内容追加到原内容的后面
*/
@Test
public void tesWriteLines4() throws IOException {
File file = new File("F:\\ddd\\a.txt");
ArrayList<String> coll = new ArrayList<>();
coll.add("I love Java");
coll.add("I love Java");
coll.add("I love Java");
FileUtils.writeLines(file,"UTF-8",coll,"I love you");
} }

Apache Commons IO之FileUtils的常用方法的更多相关文章

  1. 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 ...

  2. apache.commons.io.FileUtils的常用操作

    至于相关jar包可以到官网获取 http://commons.apache.org/downloads/index.html package com.wz.apache.fileUtils; impo ...

  3. apache commons io包基本功能

    1. http://jackyrong.iteye.com/blog/2153812 2. http://www.javacodegeeks.com/2014/10/apache-commons-io ...

  4. IO与文件读写---使用Apache commons IO包提高读写效率

    觉得很不错,就转载了, 作者: Paul Lin 首先贴一段Apache commons IO官网上的介绍,来对这个著名的开源包有一个基本的了解:Commons IO is a library of ...

  5. Apache Commons IO入门教程(转)

    Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码,这些代码可能遍布于每个独立的 ...

  6. [转]Apache Commons IO入门教程

    Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码,这些代码可能遍布于每个独立的 ...

  7. apache commons io入门

    原文参考  http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html    Apache Commons IO 包绝对是 ...

  8. .apache.commons.io 源代码学习(一)

    java的初学者,准备通读各种高水平源代码,提升能力. 为了避免自己的惰性,写博客. 版本:2.5 开发平台:netbeans. 今天是第一天,网上先看个例子:http://www.importnew ...

  9. 使用Apache Commons IO组件读取大文件

    Apache Commons IO读取文件代码如下: Files.readLines(new File(path), Charsets.UTF_8); FileUtils.readLines(new ...

随机推荐

  1. 2018爆零记第二弹之day0

    话说初赛水了个70分,ε=(´ο`*)))唉,还是太菜了. 今天两点左右到了电子科大对面宾馆,收拾安顿好后又去电子科大踩点. 进门又走过了不长不短的水杉道,来到了不大不小的西湖(为什么是这个名字... ...

  2. Azure-如何排查应用程序网关返回 HTTP Code 502 或客户端得到应用程序网关响应慢的问题(二)

    问题描述 经过如何排查应用程序网关返回 HTTP Code 502 或客户端得到应用程序网关响应慢的问题(一)中的排查步骤,可以判断出是由于 Web 服务器自身问题导致的响应异常. 那么可以在 IIS ...

  3. 简单理解DNS解析流程(一)

    0x0 简单理解dns DNS服务器里存着一张表 表中放着域名和IP地址,域名和IP地址以映射关系保存,即一对一 浏览器访问某个域名,实际上是访问它的ip地址 所以浏览器需要知道域名对应的ip地址 如 ...

  4. 前端_JavaScript

    目录 JavaScript的基础 引入方式 JS的变量.常量和标识符 JS的数据类型 运算符 流程控制 JavaScript的对象 String对象 Array对象 Date对象 Math对象 Fun ...

  5. DWR、Comet4j在Nginx+Tomcat组合下的优化

    DWR.Comet4j这类推送框架在Tomcat下运行正常,但在nginx+tomcat组合下,可能会出现断连.延迟等各种问题. 如出现此类问题,可尝试以下优化方式: 1.Nginx-----ngin ...

  6. HDU 4281 Judges' response 状压dp+多旅行商问题

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4281 Judges' response Time Limit: 2000/1000 MS (Java ...

  7. NABCD(网上投票系统)

    网上投票系统 N(need) 投票这件事情,在所有事情上都可能用得到,在互联网的影响下,投票的范围变得越来越广,比如在商业的里,往往要做市场分析,那么在互联网这个大的前提下,用网上投票系统来获取用户的 ...

  8. 校园跳蚤市场-Sprint计划

    一.现状 小组成员初步了解所做项目的大致内容,需要时间一步一步分析和规划. 二.部分需求索引卡 第一个阶段完成项目的其中一个模块(商品信息模块). 三.任务认领 产品负责人:林海信 Master:何武 ...

  9. TCP系列52—拥塞控制—15、前向重传与RACK重传拥塞控制处理对比

    一.概述 这里主要简单分析一个丢包重传并恢复的场景,通过不同的设置让这个相同的场景分别触发RACK重传和前向重传,通过对比说明以下问题: Forward Retransmit可以产生只有重传标记的数据 ...

  10. systemct管理服务命令

    systemctl管理服务的启动,重启,停止,重载,查看状态的命令 Systcinit命令(红帽RHEL6系统) Systemctl命令(红帽RHEL7系统) 作用 service  foo star ...