讲解把一个文件夹里面的内容复制到另一个文件夹中的操作

news/2025/2/16 1:23:49/

🎊专栏【Java小练习】
🍔喜欢的诗句:天行健,君子以自强不息。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

  • 🍔需求
    • ⭐思路
    • ✨代码
    • ✨效果
  • 🎄如果要复制的不是txt文件,怎么办
    • ⭐思路

🍔需求

编写程序,将某个目录下所有txt文件的内容拷贝到一个新的目录中。

⭐思路

这段代码的主要思路是将一个文件夹中的所有以".txt"结尾的文件复制到另一个文件夹中。

以下是该代码的实现步骤:

首先,我们使用File类封装源文件夹路径和目标文件夹路径,分别对应"a"和"b"文件夹。
使用listFiles()方法获取源文件夹中以".txt"结尾的所有文件,并将它们存储在一个File数组中。
创建目标文件夹,如果目标文件夹不存在的话,使用mkdirs()方法创建。
遍历源文件夹中的每个文件:
使用BufferedReader读取每个文件的内容。
使用BufferedWriter将读取到的内容写入目标文件夹中的文件。
关闭输入输出流和文件读写器。
完成所有文件的拷贝后,在控制台打印出拷贝完成的消息。

总体来说,代码通过遍历源文件夹中的每个文件,并逐行读取其内容,然后将内容写入目标文件夹中的相应文件中。这样就实现了从一个文件夹向另一个文件夹的文件复制功能。

✨代码

import java.io.*;public class AddList {public static void main(String[] args) {// 封装目录File srcDir = new File("F:\\a");// 获取该目录下所有的txt文件File[] txtFiles = srcDir.listFiles(file -> file.getName().endsWith(".txt"));// 封装目的地File destDir = new File("F:\\b");if (!destDir.exists()) {destDir.mkdirs();}for (File txtFile : txtFiles) {try {// 构建目标文件对象File targetFile = new File(destDir, txtFile.getName());// 创建输入输出流对象并复制数据InputStream is = new FileInputStream(txtFile);OutputStream os = new FileOutputStream(targetFile);byte[] buffer = new byte[1024];int length;while ((length = is.read(buffer)) > 0) {os.write(buffer, 0, length);}// 关闭输入输出流is.close();os.close();System.out.println(txtFile.getName() + " 文件已经复制到 " + targetFile.getPath());} catch (IOException e) {e.printStackTrace();}}System.out.println("所有txt文件的内容已经拷贝到b文件夹中。");}
}

✨效果

在这里插入图片描述

在这里插入图片描述

🎄如果要复制的不是txt文件,怎么办

如果我们复制粘贴的不是txt文件,可能存在其他特殊情况,特殊情况需要特殊对待
这种情况要考虑复制文件夹的情况

⭐思路

获取源文件夹和目标文件夹的路径。

  • 创建目标文件夹。
    使用File类的mkdirs()方法创建目标文件夹,确保父文件夹也被创建。

  • 遍历源文件夹中的所有文件和子文件夹。
    使用File类的listFiles()方法获取源文件夹中的所有文件和文件夹。
    遍历文件和文件夹列表。

  • 如果是文件,则进行文件复制。
    使用File类的InputStream和OutputStream创建输入和输出流。
    使用byte数组作为缓冲区,从输入流读取数据,并将数据写入输出流。

  • 如果是文件夹,则进行递归复制。
    递归调用复制文件夹的方法,传递当前子文件夹的路径作为新的源文件夹路径。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class FileCopy {public static void main(String[] args) {File sourceDir = new File("sourceFolderPath"); // 源文件夹路径File destDir = new File("destinationFolderPath"); // 目标文件夹路径if (!destDir.exists()) {destDir.mkdirs(); // 如果目标文件夹不存在,则创建}copyFiles(sourceDir, destDir);System.out.println("所有文件已经成功复制到目标文件夹中。");}private static void copyFiles(File source, File destination) {if (source.isFile()) {try (FileInputStream fis = new FileInputStream(source);FileOutputStream fos = new FileOutputStream(new File(destination, source.getName()))) {byte[] buffer = new byte[1024];int length;while ((length = fis.read(buffer)) > 0) {fos.write(buffer, 0, length); // 将文件内容写入目标文件夹中的对应文件}} catch (IOException e) {e.printStackTrace();}} else if (source.isDirectory()) {File[] files = source.listFiles();if (files != null) {for (File file : files) {File newDestination = new File(destination, file.getName());if (file.isDirectory()) {newDestination.mkdirs(); // 如果当前文件是文件夹,则在目标文件夹中创建对应的文件夹}copyFiles(file, newDestination); // 递归复制子文件夹中的文件}}}}
}

这样子,我们就完成了复制粘贴操作

在技术的道路上,我们不断探索、不断前行,不断面对挑战、不断突破自我。科技的发展改变着世界,而我们作为技术人员,也在这个过程中书写着自己的篇章。让我们携手并进,共同努力,开创美好的未来!愿我们在科技的征途上不断奋进,创造出更加美好、更加智能的明天!

在这里插入图片描述


http://www.ppmy.cn/news/1264121.html

相关文章

分类信息发布小程序效果如何

信息发布系统连接信息供需双方,打造信息聚合平台,用户可获取和发布需求信息、参与互动交流,适用于同城、社区交流、客户互动、业务员/经纪人发布信息场景。 制作分类信息小程序后,商家后台设置信息项,发布者填写内容发…

数据结构算法-希尔排序算法

引言 在一个普通的下午,小明和小森决定一起玩“谁是老板”的扑克牌游戏。这次他们玩的可不仅仅是娱乐,更是要用扑克牌来决定谁是真正的“大老板”。 然而,小明的牌就像刚从乱麻中取出来的那样,毫无头绪。小森的牌也像是被小丑掷…

Kubernetes架构及核心部件

文章目录 1、Kubernetes集群概述1.1、概述1.2、通过声明式API即可 2、Kubernetes 集群架构2.1、Master 组件2.1.1、API Server2.1.2、集群状态存储2.1.3、控制器管理器2.1.4、调度器 2.2、Worker Node 组件2.2.1、kubelet2.2.2、容器运行时环境2.2.3、kube-proxy 2.3、图解架构…

Tomcat管理功能使用

前言 Tomcat管理功能用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。在默认情况下是处于禁用状态的。如果需要开启这个功能,需要配置管理用户,即配置tomcat-users.xml文件。 !!!注意:测试功…

1 亿个数据取出最大前 100 个有什么方法?

1 亿个数据取出最大前 100 个有什么方法? 大家好,这是一道经常在面试中被遇到的一个问题,我之前面试也是被问到过得,现在一起学习下,下次再被问到就可以轻松地用对。 在计算机科学和数据处理领域,我们经常…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《考虑移动式储能调度的配电网灾后多源协同孤岛运行策略》

这篇文章的标题表明研究的主题是在配电网发生灾害后,采用一种策略来实现多源协同孤岛运行,并在这个过程中特别考虑了移动式储能的调度。 让我们逐步解读标题的关键词: 考虑移动式储能调度: 文章关注的焦点之一是移动式储能系统的…

持续集成交付CICD:通过API方式上传Nexus制品

目录 一、实验 1.通过API方式上传Nexus制品 二、问题 1.如何通过API方式上传PNG图片 2.如何通过API方式上传tar.gz 与 ZIP文件 3.如何通过API方式上传Jar file文件 4.如何通过API方式上传制品(maven类型的制品)文件 5.如何下载制品 一、实验 1.通…

hdlbits系列verilog解答(mt2015_q4b)-53

文章目录 一、问题描述二、verilog源码三、仿真结果一、问题描述 本次我们根据仿真波形图反向设计一个电路。波形如下图: 根据波形,我们可以得到真值表: x y z 0 0 1 0 1 0 1 0 0 1 1 1 逻辑表达式可以写成以下积之和形式: z = (!x&!y) | (x&y); 二、verilog源码…