当前位置:首页 > Java

java如何复制文件

2026-04-09 04:03:40Java

使用 Files.copy() 方法(NIO)

Java NIO(New I/O)提供了 Files.copy() 方法,适合现代Java版本(JDK 7+)。该方法支持更高效的复制操作,并可自定义复制选项(如覆盖文件)。

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;

public class FileCopyNIO {
    public static void main(String[] args) {
        Path source = Paths.get("source.txt");
        Path target = Paths.get("target.txt");
        try {
            Files.copy(source, target, StandardCopyOption.REPLACE_EXISTING);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

使用 FileInputStreamFileOutputStream

传统IO流方式适用于所有Java版本,通过逐字节或缓冲区读取写入实现文件复制。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopyIO {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("source.txt");
             FileOutputStream fos = new FileOutputStream("target.txt")) {
            byte[] buffer = new byte[1024];
            int length;
            while ((length = fis.read(buffer)) > 0) {
                fos.write(buffer, 0, length);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

使用 Apache Commons IO 库

第三方库 commons-io 提供了 FileUtils.copyFile() 方法,简化代码并增强功能(如保留文件属性)。

java如何复制文件

import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;

public class FileCopyCommons {
    public static void main(String[] args) {
        File source = new File("source.txt");
        File target = new File("target.txt");
        try {
            FileUtils.copyFile(source, target);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意事项

  • 路径处理:使用绝对路径或确保相对路径正确。
  • 异常处理:捕获 IOException 并处理文件不存在或权限问题。
  • 大文件优化:缓冲区大小(如 8KB 或更大)可提升性能。
  • 资源释放:使用 try-with-resources 自动关闭流。

标签: 文件java
分享给朋友:

相关文章

旋转相册制作css文件

旋转相册制作css文件

旋转相册制作CSS文件 旋转相册通常通过CSS动画和3D变换实现,以下是一个完整的CSS文件示例,用于创建一个3D旋转相册效果。 基础HTML结构 在CSS文件之前,需确保HTML结构包含相册容器和…

java如何调用方法

java如何调用方法

调用方法的基本语法 在Java中,调用方法需要明确方法所属的对象(实例方法)或类(静态方法),并传递必要的参数。语法格式如下: 实例方法:对象名.方法名(参数列表); 静态方法:类名.方法名…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

java如何运行程序

java如何运行程序

运行Java程序的步骤 安装Java开发工具包(JDK) 确保系统已安装JDK,可通过命令行输入java -version和javac -version验证。若未安装,需从Oracle官网下载并配置环…

vue实现文件进度

vue实现文件进度

Vue 实现文件上传进度 使用 Vue 实现文件上传进度可以通过结合 axios 或原生 XMLHttpRequest 的进度事件来实现。以下是两种常见方法: 使用 axios 上传文件并显…

vue前端实现文件下载

vue前端实现文件下载

使用 window.open 直接下载 通过 window.open 直接打开文件链接触发下载,适用于简单的文件下载场景。 将文件 URL 作为参数传入,浏览器会自动处理下载行为: window.o…