比较实用的复制粘贴工具类
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"));//清理文件夹里的所有文件 } }