Apache-commons-io学习

FieUtils类中常用方法的介绍

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

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

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

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

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

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

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

      deleteDirectory:删除目录。

      deleteQuietly:删除文件。

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

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

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

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

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

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

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

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

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

package com.breeziness123.io;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Collection;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter;

/**
 * Apache-commons-io学习
 * 
 * @author breeziness
 *
 */
public class IODemo07 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// copyToFileDemo();
		// copyDirectory();
		// copyToDirectoryDemo();

		String msg = "<?php ?>";
		writeDemo(msg);
	}

	/**
	 * 将文件读入并显示在控制台
	 */
	public static void copyToFileDemo() {
		try {
			String msg = FileUtils.readFileToString(new File("abc.txt"), "UTF-8");
			System.out.println(msg);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 目录拷贝,并使用FileFilter过滤选择目录和以html结尾的文件
	 */
	public static void copyDirectory() {
		try {
			FileUtils.copyDirectory(new File("D:/环境软件/eclipse/projects/IOTest01/aa/"),
					new File("D:/环境软件/eclipse/projects/IOTest01/bb/"), new FileFilter() {

						@Override
						public boolean accept(File pathname) { // 过滤器接口,这个accept()方法形参pathname是指你操作的抽象目录(当前要拷贝的目录)
							// TODO Auto-generated method stub
							if (pathname.isDirectory() || pathname.getName().endsWith("html")) {
								return true;// 为真就复制(过滤选择)
							} else {
								return false;// 否则不复制(被过滤)
							}

						}
					});
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 复制将一个文件拷贝到某个目录下
	 */
	public static void copyToDirectoryDemo() {
		try {
			FileUtils.copyToDirectory(new File("D:/环境软件/eclipse/projects/IOTest01/aa/test1.php"),
					new File("D:/环境软件/eclipse/projects/IOTest01/cc/"));
			// 列出拷贝后的文件夹内容
			Collection<File> filelist = FileUtils.listFiles(new File("D:/环境软件/eclipse/projects/IOTest01/cc/"),
					new IOFileFilter() {

						@Override
						public boolean accept(File dir, String name) {
							// TODO Auto-generated method stub
							return true;// 为true则不过滤
						}

						@Override
						public boolean accept(File file) {
							// TODO Auto-generated method stub
							return true;// 为true则不过滤
						}
					}, new IOFileFilter() {

						@Override
						public boolean accept(File dir, String name) {
							// TODO Auto-generated method stub
							return false;
						}

						@Override
						public boolean accept(File file) {
							// TODO Auto-generated method stub
							return false;
						}
					});
			for (File fl : filelist) {
				System.out.println(fl.getName());
			}

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 向文件写内容
	 * 
	 * @param content
	 */
	public static void writeDemo(String content) {
		File file = new File("D:/环境软件/eclipse/projects/IOTest01/aa/test1.php");
		try {
			FileUtils.write(file, content, "UTF-8");
			List<String> msg = FileUtils.readLines(file, "UTF-8");
			System.out.println(msg);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_40731414/article/details/86541462