趣图在线生成网站源码,百度给做网站收费多少,太原市手机微网站建设,网站后台无法审核#x1f38a;专栏【Java小练习】 #x1f354;喜欢的诗句#xff1a;天行健#xff0c;君子以自强不息。 #x1f386;音乐分享【如愿】 #x1f384;欢迎并且感谢大家指出小吉的问题#x1f970; 文章目录 #x1f354;需求⭐思路✨代码✨效果 #x1f384;如果要复制… 专栏【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); // 递归复制子文件夹中的文件}}}}
}
这样子我们就完成了复制粘贴操作 在技术的道路上我们不断探索、不断前行不断面对挑战、不断突破自我。科技的发展改变着世界而我们作为技术人员也在这个过程中书写着自己的篇章。让我们携手并进共同努力开创美好的未来愿我们在科技的征途上不断奋进创造出更加美好、更加智能的明天