在日常开发过程中,大部分的时候,我们都不会自己写IO流,一来是太复杂,容易和核心的业务代码混淆,二来自己写的IO流往往效率低,存在问题,给后续项目二次开发带来很多不必要的麻烦。

Commons-io是apache开源基金组织提供的一组有关IO操作的开源工具包。

作用:提供IO流的开发效率

使用Commons-io要先导包

右键添加为库

package Day12_IO;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.input.ReaderInputStream;

import java.io.*;
import java.util.List;

public class IOTest04 {
    public static void main(String[] args) throws IOException {
        //使用Commons-io来操作IO
        //1、copyFile:复制文件
        //E:\test\\test.txt复制生成E:\doc\doc.txt下面
//        File srcFile = new File("E:\\test\\test.txt");
//        File destFile = new File("E:\\doc\\doc.txt");
//        FileUtils.copyFile(srcFile,destFile);
        //2、copyDirectory:复制文件夹
        //E:\test\test1复制到E:\doc下,生成一个test2文件夹
        //File srcDirectory = new File("E:\\test\\test1");
        //File destDirectory = new File("E:\\doc\\test2");
        //FileUtils.copyDirectory(srcDirectory,destDirectory);
        //copyDirectoryToDirectory和copyDirectory的区别在于,copyDirectoryToDirectory会把源文件的文件夹复制到目的地
        //copyDirectory就只会把源文件的文件夹里面的内容复制到目的地
        //3、copyDirectoryToDirectory
//        File srcDirectory = new File("E:\\test\\test1");
//        File destDirectory = new File("E:\\doc");
//        FileUtils.copyDirectoryToDirectory(srcDirectory,destDirectory);
        //4、deleteDirectory:删除文件夹,这个是目录都不会保留
        //删除E:\doc\test1
        //File file = new File("E:\\doc\\test1");
        //FileUtils.deleteDirectory(file);
        //5、cleanDirectory:清空文件夹内的内容,这个目录会保留
//        File file = new File("E:\\doc\\test1");
//        FileUtils.cleanDirectory(file);
        //6、readFileToString
//        File file = new File("E:\\test\\test1\\test.txt");
//        String s = FileUtils.readFileToString(file, "utf-8");
//        System.out.println(s);
        //7、写出数据,默认不加true的时候是默认不续写的,加了true默认是续写
//        File file = new File("E:\\test\\test1\\test.txt");
//        String content = "Hello, World!\n这是使用FileUtils写入的文本。";
//        FileUtils.write(file,content,"UTF-8",true);
//        System.out.println(FileUtils.readFileToString(file, "utf-8"));
        //IOUtils类

        //1、copy:复制文件,要注意一下copy的参数类型
//        FileInputStream fis = new FileInputStream("E:\\test\\test1\\test.txt");
//        FileOutputStream fos = new FileOutputStream("E:\\doc\\test1\\doc.txt");
//        IOUtils.copy(fis,fos);
        //2、copyLarge:复制大文件
//        FileInputStream fis = new FileInputStream("E:\\test\\test1\\test.txt");
//        FileOutputStream fos = new FileOutputStream("E:\\doc\\test1\\doc.txt");
//        IOUtils.copyLarge(fis,fos);
        //3、readLines读取数据
//        FileInputStream fis = new FileInputStream("E:\\test\\test1\\test.txt");
//        for (String s : IOUtils.readLines(fis, "UTF-8")) {
//            System.out.println(s);
//        }
        //4、write,IOUtils本身是不支持续写的,如果要续写,就在基本流上设置true
        FileOutputStream fos = new FileOutputStream("E:\\doc\\test1\\doc.txt",true);
        String s="中国";
        IOUtils.write(s, fos, "UTF-8");


    }
}
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐