比较实用的复制粘贴工具类

package com.example.cisum.utils;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

public class FileUtilsDemo {

    public static void main(String[] args) throws IOException {
        //1.JDK自带的文件复制、移动、删除


        //最后参数CopyOption REPLACE_EXISTING 替换原有文件 COPY_ATTRIBUTES 复制文件属性 ATOMIC_MOVE 保证原子性移动(如中间报错,回滚)
//        Files.copy(Paths.get("doc/alarm.log"), Paths.get("doc/alarm1.log"), StandardCopyOption.REPLACE_EXISTING);
        //Files.copy(Paths.get("doc/alarm.log"),Paths.get("doc/alarm1.log"));//源文件和目标文件都是file


        //Files.copy(Files.newInputStream(Paths.get("doc/alarm1.log")),Paths.get("doc/alarm2.log"));//源文件是流,目标文件file
        //java9以上版本。。
//        Files.copy(Paths.get("doc/alarm2.log"),Files.newInputStream(Paths.get("doc/alarm3.log")));//源文件file,目标文件是流
//        Files.copy(Files.newInputStream(Paths.get("doc/alarm3.log")), Files.newInputStream(Paths.get("doc/alarm4.log")))//但没有源文件和目标都是流的,正确写法如下
//        //正确写法  java9以上版本。。
//        try(InputStream inputStream = Files.newInputStream(Paths.get("doc/alarm4.log"));
//            OutputStream out = Files.newOutputStream(Paths.get("/doc/5.log"))) {
//            inputStream.transferTo(Files.newInputStream(out));
//        }
//        Files.move(Paths.get("doc/alarm2.log"),Paths.get("doc/alarm3.log"));//先复制,再删除

//        Files.delete(Paths.get("doc/alarm3.log"));
        //2.commons-io的相关工具方法
        //FileUtils.copyDirectory(new File("doc"),new File("doc2"));//复制文件夹(包含内部文件)
//        FileUtils.copyDirectoryToDirectory(new File("doc"),new File("doc3"));//把doc复制到doc3下
//        FileUtils.copyFileToDirectory(new File("doc/nginx.conf"),new File("doc3"));//把指定文件复制到指定文件夹下
        FileUtils.moveToDirectory(new File("doc/alarm.log"),new File("doc4"),true);//文件移动到文件夹,是否新建目录
        FileUtils.deleteQuietly(new File("doc/alarm.log"));//静默删除,及时中间发生异常,不会报错
        FileUtils.cleanDirectory(new File("doc4"));//清理文件夹里的所有文件
    }
}

 

posted @ 2023-01-03 10:59  蔡徐坤1987  阅读(102)  评论(0编辑  收藏  举报