Java实现文件或文件夹的复制到指定目录实例

Java 实现文件或文件夹的复制到指定目录可以使用 NIO 的 Files 类,以下是实现一份文件的复制到目标文件夹的代码示例。

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

public class FileCopyDemo {

    public static void main(String[] args) throws IOException {
        String sourceFilePath = "source.txt"; // 源文件路径
        String targetDirPath = "target"; // 目标目录路径

        // 1. 检查目标目录是否存在,不存在则创建
        if (!Files.exists(Paths.get(targetDirPath))) {
            Files.createDirectories(Paths.get(targetDirPath));
        }

        // 2. 拼接目标文件路径
        Path sourcePath = Paths.get(sourceFilePath);
        String targetFilePath = targetDirPath + File.separator + sourcePath.getFileName();

        // 3. 复制文件到目标文件夹
        Files.copy(sourcePath, Paths.get(targetFilePath), StandardCopyOption.REPLACE_EXISTING);
    }

}

具体过程如下:

  1. 创建源文件的路径与目标目录的路径;
  2. 判断目标目录是否存在,不存在则创建;
  3. 解析源文件路径,获取文件名,为目标文件拼接路径,使用 Files.copy 方法完成文件复制操作。

如果要实现文件夹的复制,则需要使用递归遍历实现;以下示例实现从源文件夹复制到目标文件夹的代码:

import java.io.File;
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 FolderCopyDemo {

    public static void main(String[] args) throws IOException {
        String sourceFolderPath = "source"; // 源文件夹路径
        String targetFolderPath = "target"; // 目标文件夹路径

        // 1. 检查目标目录是否存在,不存在则创建
        if (!Files.exists(Paths.get(targetFolderPath))) {
            Files.createDirectories(Paths.get(targetFolderPath));
        }

        // 2. 遍历源文件夹中的所有文件和子文件夹,并复制到目标文件夹
        Files.walk(Paths.get(sourceFolderPath)).forEach(sourcePath -> {
            String targetPath = sourcePath.toString().replace(sourceFolderPath, targetFolderPath);
            try {
                if (Files.isDirectory(sourcePath)) {
                    Files.createDirectories(Paths.get(targetPath));
                } else {
                    Files.copy(sourcePath, Paths.get(targetPath), StandardCopyOption.REPLACE_EXISTING);
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        });
    }

}

代码实现过程如下:

  1. 创建源文件夹路径与目标文件夹路径;
  2. 如果目标文件夹不存在,则创建;
  3. 使用 Files.walk 遍历源文件夹中的所有文件及子文件夹,使用 Files.copy 来复制文件或文件夹到目标文件夹,如果当前正在处理的是一个子文件夹,则需要在目标文件夹中创建对应文件夹。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java实现文件或文件夹的复制到指定目录实例 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Java实现弹窗效果的基本操作

    下面就带大家详细讲解Java实现弹窗效果的基本操作。 一、基本概念 弹窗效果通常是指在打开网页或者程序时,弹出一个对话框,提示用户进行操作或者展示一些信息。 在Java中,我们可以通过调用JOptionPane类实现弹窗效果。JOptionPane是Swing提供的对话框框架,包括很多不同类型的对话框,如消息对话框、选择对话框、输入对话框等。我们可以根据不同…

    Java 2023年5月18日
    00
  • JDBC数据库连接步骤解析

    JDBC是Java Database Connectivity的缩写,用于Java语言访问关系型数据库的API。下面就来详细讲解JDBC数据库连接步骤解析。 JDBC数据库连接步骤 加载数据库驱动:通过Class.forName()方法加载数据库驱动,例如加载mysql数据库驱动可以使用以下代码: Class.forName(“com.mysql.jdbc.…

    Java 2023年5月20日
    00
  • Java FileWriter输出换行操作

    下面是关于Java FileWriter输出换行操作的详细讲解: 什么是FileWriter FileWriter 是一个用来写入字符流的便利类。它可以将文本写入到文件中,如果文件不存在则会自动创建。与 FileOutputStream 类似,你可以指定写入数据的文件名和写入数据时是否追加到文件的末尾。 FileWriter 输出换行 在Java中,换行的表…

    Java 2023年5月26日
    00
  • 浅析SpringBoot自动化配置原理实现

    首先来介绍一下“浅析SpringBoot自动化配置原理实现”的完整攻略。 什么是SpringBoot自动化配置 SpringBoot是现在非常流行的Java Web开发框架,其最大的特点是其对于开发者的友好性,使开发者可以非常快地构建出一个Web应用,其中最为重要的就是其自动化配置。 自动化配置是SpringBoot的核心功能之一,它可以帮助开发者自动加载常…

    Java 2023年5月15日
    00
  • 浅谈SpringMVC+Spring3+Hibernate4开发环境搭建

    下面是关于SpringMVC+Spring3+Hibernate4开发环境搭建的详细攻略,包含两个示例说明。 SpringMVC+Spring3+Hibernate4开发环境搭建 SpringMVC、Spring和Hibernate是Java Web应用程序开发中常用的框架。在本文中,我们将介绍如何将这三个框架整合在一起,并搭建开发环境。 步骤1:添加依赖 …

    Java 2023年5月17日
    00
  • Java StringBuilder的用法示例

    接下来我将为你详细讲解Java StringBuilder的用法示例。 什么是StringBuilder 在Java中,如果需要大量修改字符串时,使用字符串拼接是不太合适的方式,会带来一定的性能问题。因此,Java提供了StringBuilder类,它是一个可变的字符串序列。相比于String类,它能够更加高效地进行字符串的操作。 StringBuilder…

    Java 2023年5月27日
    00
  • java数组的三种扩容方式以及程序实现详解

    Java数组的三种扩容方式以及程序实现详解 为什么需要数组扩容 在 Java 中,数组的长度是固定的,一旦数组被创建,它的大小就不能再改变了。在一些场景下,我们需要在运行时动态地改变数组的大小,那么就需要用到数组扩容。 例如,我们开发一个数组队列,数组队列的底层实现是数组。如果元素个数超过了数组的初始长度,就需要对数组进行扩容,否则会导致队列无法继续存入元素…

    Java 2023年5月19日
    00
  • Java DelayQueue实现任务延时示例讲解

    让我详细讲解一下“Java DelayQueue实现任务延时示例讲解”的完整攻略。 什么是DelayQueue DelayQueue 是一个基于优先级队列 PriorityQueue 实现的无界阻塞队列,用于放置在给定延迟时间后才能被消费的元素(任务)。DelayQueue 中的元素必须实现 java.util.concurrent.Delayed 接口,该…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部