全屏

10.5.2 FileUtils的妙用


【专业IT培训机构,真正零首付入学www.bjsxt.com


·jar包下载和介绍

      首先,我们要下载FileUtils相关的Apache-commons-io jar包以及api文档。FileUtils类库的下载页面在:

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

      点击进入下载页面:

图10-22 下载界面.png

图10-22 下载界面

      API文档的页面:

      http://commons.apache.org/proper/commons-io/javadocs/api-2.5/index.html

      我们本次示例,下载了最新的2.5版本,作为测试和示范。

·eclpise项目如何导入外部的jar包操作

      1. 在eclipse项目下新建lib文件夹

      2. 解压下载后的版本,找到commons-io-2.5.jar包,并拷贝到lib文件夹下

图10-23 eclipse项目中导入jar包.png

图10-23 eclipse项目中导入jar包

      3. 设置jar包进入项目的classpath中。

      项目名上右击,依次选择【Build Path】-->【Configure Build Path...】,在打开的窗口中,先选中【Libraries】页,再从右边的按钮中点击 【add JARs...】; 在打开的窗口中,我们依次展开本项目的项目和lib文件夹,然后选中我们刚才复制到项目中的jar包,然后点击【Apply】使刚才的操作生效,最后点击【OK】关闭窗口。

图10-24 配置path.png

图10-24 配置path

      项目结构如下:

图10-25 项目结构图.png

图10-25 项目结构图

新手雷区

      很多初学者会忘记配置项目的classpath,从而项目找不到相关的jar包。大家可以在此处多配置几次,直到足够熟练!

· FieUtils类中常用方法的介绍

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

      cleanDirectory:清空目录,但不删除目录。

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

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

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

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

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

      deleteDirectory:删除目录。

      deleteQuietly:删除文件。

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

      openInputSteam:打开指定文件的输入流。

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

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

      size:返回文件或目录的大小。

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

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

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

      writeStringToFile:将字符串内容写到文件中。

·代码演示

【示例10-16】读取文件内容,并输出到控制台上(只需一行代码!)

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);
	}
}

      执行结果如图10-26所示:

图10-26 示例10-16运行效果图.png

图10-26 示例10-16运行效果图

【示例10-17】目录拷贝,并使用FileFilter过滤目录和以html结尾的文件

import java.io.File;
import java.io.FileFilter;
import org.apache.commons.io.FileUtils;

public class TestUtils2 {
	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;
				}
			}
		});
	}
}

      执行结果如图10-27所示:

图10-27 示例10-17运行效果图.png

图10-27 示例10-17运行效果图

分类导航
点击按住视频可拖动

缩小

关闭

  • 正在学习
  • 北京总部地址:北京市海淀区西三旗街道建材城西路中腾建华商务大厦东侧二层尚学堂
  • 咨询电话:400-009-1906 010-56233821
  • Copyright 2007-2015 北京尚学堂科技有限公司
  • 京ICP备13018289号-1 京公网安备11010802015183