hse365平台-mobile365官网是多少-英国365网站最近怎么了

JAVA深化篇

JAVA深化篇

Apache commons-io工具包的使用

Apache基金会介绍

Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。 官方网址为:www.apache.org 。

很多著名的Java开源项目都来源于这个组织。比如:commons、kafka、lucene、maven、shiro、struts等技术,以及大数据技术中的:hadoop(大数据第一技术)、hbase、spark、storm、mahout等。

commons-io工具包

Apache的commons-io工具包中提供了IOUtils/FileUtils,为我们提供了更加简单、功能更加强大的文件操作和IO流操作功能。非常值得大家学习和使用。

下载与添加commons-io包

1.下载地址

https://commons.apache.org/proper/commons-io/download_io.cgi

2.添加jar包

FileUtils类中常用方法的介绍

打开FileUtils的api文档,我们抽出一些工作中比较常用的方法,进行总结和讲解。总结如下:

方法名

使用说明

cleanDirectory

清空目录,但不删除目录

contentEquals

比较两个文件的内容是否相同

copyDirectory

将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的文件

copyFile

将一个文件拷贝到一个新的地址

copyFileToDirectory

将一个文件拷贝到某个目录下

copyInputStreamToFile

将一个输入流中的内容拷贝到某个文件

deleteDirectory

删除目录

deleteQuietly

删除文件

listFiles

列出指定目录下的所有文件

openInputSteam

打开指定文件的输入流

readFileToString

将文件内容作为字符串返回

readLines

将文件内容按行返回到一个字符串数组中

size

返回文件或目录的大小

write

将字符串内容直接写到文件中

writeByteArrayToFile

将字节数组内容写到文件中

writeLines

将容器中的元素的toString方法返回的内容依次写入文件中

writeStringToFile

将字符串内容写到文件中

读取文件内容,并输出到控制台上(只需一行代码!)

java

复制代码

import java.io.File;

import org.apache.commons.io.FileUtils;

public class TestUtils1 {

public static void main(String[] args) throws Exception {

String content = FileUtils.readFileToString(new File("d:/a.txt"), "gbk");

System.out.println(content);

}

}

使用FileUtils工具类实现目录拷贝

我们可以使用FileUtils完成目录拷贝,在拷贝过程中可以通过文件过滤器(FileFilter)选择拷贝内容。

java

复制代码

import java.io.File;

import java.io.FileFilter;

import org.apache.commons.io.FileUtils;

public class TestFileUtilsDemo2 {

public static void main(String[] args) throws Exception {

FileUtils.copyDirectory(new File("d:/aaa"), new File("d:/bbb"), new FileFilter() {

@Override

public boolean accept(File pathname) {

// 使用FileFilter过滤目录和以html结尾的文件

if (pathname.isDirectory() || pathname.getName().endsWith("html")) {

return true;

} else {

return false;

}

}

});

}

}

IOUtils的妙用

打开IOUtils的api文档,我们发现它的方法大部分都是重载的。所以,我们理解它的方法并不是难事。因此,对于方法的用法总结如下:

方法名

使用说明

buffer

将传入的流进行包装,变成缓冲流。并可以通过参数指定缓冲大小

closeQueitly

关闭流

contentEquals

比较两个流中的内容是否一致

copy

将输入流中的内容拷贝到输出流中,并可以指定字符编码

copyLarge

将输入流中的内容拷贝到输出流中,适合大于2G内容的拷贝

lineIterator

返回可以迭代每一行内容的迭代器

read

将输入流中的部分内容读入到字节数组中

readFully

将输入流中的所有内容读入到字节数组中

readLine

读入输入流内容中的一行

toBufferedInputStream,toBufferedReader

将输入转为带缓存的输入流

toByteArray,toCharArray

将输入流的内容转为字节数组、字符数组

toString

将输入流或数组中的内容转化为字符串

write

向流里面写入内容

writeLine

向流里面写入一行内容

我们没有必要对每个方法做测试,只是演示一下读入d:/sxt.txt文件内容到程序中,并转成String对象,打印出来。

IOUtils的使用

java

复制代码

import java.io.*;

import org.apache.commons.io.IOUtils;

public class TestIOUtilsDemo {

public static void main(String[] args) throws Exception {

String content = IOUtils.toString(new FileInputStream("d:/sxt.txt"),"utf-8");

System.out.println(content);

}

}