比较实用的复制粘贴工具类
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"));//清理文件夹里的所有文件 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?