Apache commons-io 工具类的使用

Apache commons-io 工具类的使用

Commons IO是apache的一个开源的工具包,封装了IO操作的相关类,使用Commons IO可以很方便的读写文件。下面是练习使用commons-io工具类中的一些笔记。


常用方法使用

/********************************************************
*
* Package: com.commons.io.test
*
* Filename: CommonsIOTest.java
*
* Description: TODO(CommonsIOTest.java用作练习Apache commons-io工具类的使用)
*
* Copyright: Copyright (c) 2001-2014
*
* @author: cobra
*
* @version: 1.0.0
*
* Create at: 2016年8月25日 下午5:05:12
*
* Revision:
*
* 2016年8月25日 下午5:05:12
* - first revision
*
*******************************************************/
package com.commons.io.test;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import org.apache.commons.io.FileSystemUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.LineIterator;
import org.apache.commons.io.comparator.CompositeFileComparator;
import org.apache.commons.io.comparator.DirectoryFileComparator;
import org.apache.commons.io.comparator.NameFileComparator;
import org.apache.commons.io.comparator.PathFileComparator;
import org.apache.commons.io.filefilter.EmptyFileFilter;
import org.apache.commons.io.filefilter.SuffixFileFilter;

public class CommonsIOTest
{

// ***************[文件基本操作]*********************************************//
/**
 * @Description (利用FileUtils工具类进行文件的拷贝操作)
 * @param srcFile 源文件
 * @param destFile 目标文件
 * @throws IOException
 */
public void copyFile(File srcFile, File destFile) throws IOException
{
    FileUtils.copyFile(srcFile, destFile);
}

/**
 * @Description (利用FileUtils工具类进行文件的强制删除操作)
 * @param delFile 要进行删除的文件
 * @throws IOException
 */
public void deleteFile(File delFile) throws IOException
{
    FileUtils.forceDelete(delFile);
}

/**
 * @Description (利用FileUtils工具类进行文件的内容比较操作)
 * @param srcFile 需要进行比较的源文件
 * @param destFile 需要进行比较的目标文件
 * @throws IOException
 */
public void compareFile(File srcFile, File destFile) throws IOException
{
    boolean result = FileUtils.contentEquals(srcFile, destFile);
    System.out.println(result);
}

/**
 * @Description (利用FileUtils工具类进行文件的移动操作)
 * @param srcFile 需要移动的源文件
 * @param destFile 移动后的目标文件
 * @throws IOException
 */
public void moveFile(File srcFile, File destFile) throws IOException
{
    FileUtils.moveFile(srcFile, destFile);
}

/**
 * @Description (利用FileUtils工具类将一个文件移动到目标文件夹下)
 * @param srcFile 需要移动的文件
 * @param destDir 目标文件夹
 * @throws IOException
 */
public void moveFile2Directory(File srcFile, File destDir) throws IOException
{
    FileUtils.moveToDirectory(srcFile, destDir, true);
}

/**
 * @Description (利用FileUtils工具类进行文件的读)
 * @param srcFile 需要读的源文件
 * @throws IOException
 */
public void readFileContent(File srcFile) throws IOException
{
    String fileContent = FileUtils.readFileToString(srcFile, "utf8");
    System.out.println(fileContent);
    List contents = FileUtils.readLines(srcFile, "utf8");
    System.out.println(contents);
}

/**
 * @Description (利用FileUtils工具类向目标文件中写数据)
 * @param destFile 目标文件
 * @param content 向目标文件写的数据
 * @throws IOException
 */
public void writeFile(File destFile, String content) throws IOException
{
    FileUtils.writeStringToFile(destFile, content, "utf8", true);
}

// ***[文件过滤]***********************************************************************
/**
 * @Description (空内容文件过滤器,过滤掉源文件夹下内容为空的文件)
 * @param srcFile 源文件夹
 */
public void emptyFileFilter(File srcFile)
{
    String[] files = srcFile.list(EmptyFileFilter.NOT_EMPTY);
    for (String file : files)
    {
        System.out.println(file);
    }
}

/**
 * @Description (文件后缀过滤,过滤掉文件夹下不包含suffix的文件)
 * @param srcFile 源文件夹
 * @param suffix 过滤后缀
 */
public void suffixFileFilter(File srcFile, String suffix)
{
    String[] files = srcFile.list(new SuffixFileFilter(suffix));
    for (String file : files)
    {
        System.out.println(file);
    }
}

// ***[文件比较]***********************************************************************
/**
 * @Description (用NameFileComparator比较两个文件的名字)
 * @param srcFile 用于比较的源文件
 * @param destFile 用于比较的目标文件
 * @return 返回值为0的时候两文件名一样
 */
public int NameFileComparator(File srcFile, File destFile)
{
    int result = NameFileComparator.NAME_COMPARATOR.compare(srcFile, destFile);
    return result;
}

/**
 * @Description (用PathFileComparator比较两个文件的路径是否一致)
 * @param srcFile 源文件
 * @param destFile 目标文件
 * @return 当result为0的时候两个文件的路径一致
 */
public int FilePathComparator(File srcFile, File destFile)
{
    int result = PathFileComparator.PATH_COMPARATOR.compare(srcFile, destFile);
    return result;

}

/**
 * @Description (利用组合比较器对文件夹下的文件进行排序)
 * @param srcFile
 */
@SuppressWarnings("unchecked")
public void compositeComparator(File srcFile)
{
    File[] files = srcFile.listFiles();
    for (File f : files)
    {
        System.out.println(f.getName());
    }
    // 先进行目录比较,然后是文件名比较
    CompositeFileComparator cfc = new CompositeFileComparator(DirectoryFileComparator.DIRECTORY_COMPARATOR,
            NameFileComparator.NAME_COMPARATOR);
    cfc.sort(files);
    System.out.println("after sort");
    for (File f : files)
    {
        System.out.println(f.getName());
    }
}

// ***[获取磁盘剩余空间]****************************************************************
/**
 * @Description (利用FileSystemUtils工具类获取磁盘的剩余空间)
 * @param srcPath 磁盘
 * @return 剩余空间大小KB
 * @throws IOException
 */
public Long getfreeSpace(String srcPath) throws IOException
{
    Long dirSize = FileSystemUtils.freeSpaceKb(srcPath);
    System.out.println(dirSize);
    return dirSize;
}

// ***[行迭代器]****************************************************************
/**
 * @Description (利用FileUtils对文件进行迭代读取)
 * @param srcFile 源文件
 * @throws IOException
 */
public void lineIterator(File srcFile) throws IOException
{
    LineIterator li = FileUtils.lineIterator(srcFile);
    while (li.hasNext())
    {
        System.out.println(li.next());
    }
    LineIterator.closeQuietly(li);
}

// ***[IOUtils]****************************************************************
/**
 * @Description (利用IOUtils读取url内容)
 * @param url源url
 * @return
 */
public static String readURL(String url) throws IOException, IOException
{
    InputStream in = new URL(url).openStream();
    String contents = IOUtils.toString(in, "utf8");
    return contents;
}

}

你可能感兴趣的:(学习笔记)