当前位置: 首页 > news >正文

在Java中使用Files类的copy()方法复制文件的示例

在 Java 里,java.nio.file.Files 类的 copy() 方法可用于复制文件或目录。下面为你提供使用 copy() 方法复制文件的示例代码:

简单文件复制示例

以下代码将一个文件从源路径复制到目标路径。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;public class FileCopyExample {public static void main(String[] args) {// 源文件路径String sourceFilePath = "path/to/source/file.txt";// 目标文件路径String targetFilePath = "path/to/target/file.txt";Path sourcePath = Paths.get(sourceFilePath);Path targetPath = Paths.get(targetFilePath);try {// 复制文件Files.copy(sourcePath, targetPath);System.out.println("文件复制成功");} catch (IOException e) {System.err.println("文件复制失败: " + e.getMessage());}}
}    

代码解释:

1)指定路径:定义了源文件路径 sourceFilePath 和目标文件路径 targetFilePath

2)创建 Path 对象:利用 Paths.get() 方法依据文件路径创建 Path 对象。

3)复制文件:调用 Files.copy() 方法将源文件复制到目标路径。

4)异常处理:使用 try-catch 块捕获并处理可能出现的 IOException 异常。

覆盖已存在的目标文件

若目标文件已存在,Files.copy() 方法会抛出 FileAlreadyExistsException 异常。若你想覆盖已存在的目标文件,可使用 StandardCopyOption.REPLACE_EXISTING 选项。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;public class FileCopyWithReplace {public static void main(String[] args) {String sourceFilePath = "path/to/source/file.txt";String targetFilePath = "path/to/target/file.txt";Path sourcePath = Paths.get(sourceFilePath);Path targetPath = Paths.get(targetFilePath);try {Files.copy(sourcePath, targetPath, StandardCopyOption.REPLACE_EXISTING);System.out.println("文件复制成功(覆盖已存在文件)");} catch (IOException e) {System.err.println("文件复制失败: " + e.getMessage());}}
}

在这个示例中,StandardCopyOption.REPLACE_EXISTING 选项作为第三个参数传递给 Files.copy() 方法,这表明如果目标文件已存在,会对其进行覆盖。

你需要把 "path/to/source/file.txt" 和 "path/to/target/file.txt" 替换为实际的文件路径。

相关文章:

  • Ubuntu20.04安装NVIDIA Warp
  • 【数据结构】——顺序表刷题
  • Linux远程管理
  • WPACS基于HTML5的DICOM影像浏览
  • 92.一个简单的输入与显示示例 Maui例子 C#例子
  • 【计算机视觉】目标检测:深度解析MMDetection:OpenMMLab开源目标检测框架实战指南
  • C++中std::map、std::list和std::deque的底层实现是怎样的?
  • 2025 新生 DL-FWI 培训
  • MT6765 android上层获取VCM lens位置
  • 上海地区IDC机房服务器托管选型报告(2025年4月30日)
  • Power Automate:发送邮件时加入表格
  • pinia实现数据持久化插件pinia-plugin-persist-uni
  • w313安康学院新型冠状病毒肺炎疫情防控专题网站设计与实现
  • MySQL慢查询日志分析工具mysqldumpslow教程
  • Roboflow标注数据集
  • 【MCP Node.js SDK 全栈进阶指南】高级篇(6):MCP服务大规模部署方案
  • 安卓AppWidget桌面小组件在国产移动设备的一些适配问题
  • 驱动车辆诊断测试创新 | 支持诊断测试的模拟器及数据文件转换生成
  • pybind11 使用指南+示例
  • 【AI论文】RepText:通过复制渲染视觉文本
  • 网商银行2024年年报发布,客户资产管理规模超过1万亿
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单
  • 历史新高!上海机场一季度营收增至31.72亿元,净利润增34%
  • 我国成功发射卫星互联网低轨卫星
  • AI观察|算力饥渴与泡沫
  • 伊朗内政部长:港口爆炸由于“疏忽”和未遵守安全规定造成