Java commons-io 工具包


# commons-io 工具包

  • commons-io 是 Apache 开源基金组织提供的一组有关 IO 操作的类库,可以挺提高 IO 功能开发的效率。commons-io 工具包提供了很多有关 IO 操作的类,见下表:
功能描述
org.apache.commons.io 有关 Streams、Readers、Writers、Files 的工具类
org.apache.commons.io.input 输入流相关的实现类,包含 Reader 和 InputStream
org.apache.commons.io.output 输出流相关的实现类,包含 Writer 和 OutputStream
org.apache.commons.io.serialization 序列化相关的类

1. 配置步骤


2. 常用 API

  • commons-io 提供了一个工具类 org.apache.commons.io.IOUtils,里面封装了大量 IO 读写操作的代码。其中有两个常用方法:
    • public static int copy(InputStream in, OutputStream out);:把 input 输入流中的内容拷贝到 output 输出流中,返回拷贝的字节个数(适合文件大小为 2 GB 以下);
    • public static long copyLarge(InputStream in, OutputStream out);:把 input 输入流中的内容拷贝到 output 输出流中,返回拷贝的字节个数(适合文件大小为 2 GB 以上);

a. 案例:文件复制

  • 较小文件可以使用 copy() 方法:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Test {
    public static void main(String[] args) throws Exception {
        // 文件路径需要修改,改成自己文件的路径
        File file = new File("C:\\Users\\80626\\Desktop\\1.txt");
        FileInputStream is = new FileInputStream(file);
        // 文件路径需要修改
        File file1 = new File("C:\\Users\\80626\\Desktop\\2.txt");
        FileOutputStream os = new FileOutputStream(file1);
        // 文件复制
        IOUtils.copy(is, os);
        //注意要手动关闭流
        os.close();
        is.close();
        //如果不想关闭流的话就用匿名对象的方式:
        //String from = "C:\Users\80626\Desktop\1.txt";
        //String to = "C:\Users\80626\Desktop\2.txt";
        //IOUtils.copyLarge(new FileInputStream(from),new FileOutputStream(to));
    }
}
  • commons-io 还提供了一个工具类 org.apache.commons.io.FileUtils,封装了一些对文件操作的方法:

    • public static void copyFileToDirectory(final File srcFile, final File destFile):复制文件到另外一个目录下;
    • public static void copyDirectoryToDirectory( file1 , file2 );:复制 file 1 目录到 file 2 位置;
  • 案例演示:

import java.io.File;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        //1.将文件复制到C:\\下
        FileUtils.copyFileToDirectory(new File("C:\\Users\\80626\\Desktop\\1.txt"), new File("C:\\"));
        //2.将目录复制到"C:\\"下。
        FileUtils.copyDirectoryToDirectory(new File("C:\\Users\\80626\\Desktop\\1"), new File("C:\\"));
    }
}

b. 案例:删除文件夹

import java.io.File;
import java.io.IOException;

public class Test {
    public static void main(String[] args) throws IOException {
        //递归删除文件夹
        FileUtils.deleteDirectory(new File("C:\\Users\\80626\\Desktop\\1"));
    }
}
发布了272 篇原创文章 · 获赞 276 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Regino/article/details/105055963
今日推荐