講解把一個文件夾里面的內容復制到另一個文件夾中的操作

🎊專欄【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.pswp.cn/news/211205.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211205.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211205.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue3:表格單元格內容由:圖標+具體內容 構成

一、背景 在Vue3項目中,想讓單元格的內容是由 :圖標具體內容組成的,類似以下效果: 二、圖標 Element-Plus 可以在Element-Plus里面找是否有符合需求的圖標iconfont 如果Element-Plus里面沒有符合需求的,也可以在這…

MySQL 數據庫操作指南:LIMIT,OFFSET 和 JOIN 的使用

限制結果 您可以通過使用"LIMIT"語句來限制查詢返回的記錄數量。以下是一個示例,獲取您自己的Python服務器中"customers"表中的前5條記錄: import mysql.connectormydb mysql.connector.connect(host"localhost",user&…

Proteus仿真--基于NM24C08的EEPROM仿真設計

本文介紹基于NM24C08的EEPROM仿真設計(完整仿真源文件及代碼見文末鏈接) 其中NM24C08是標準的2線總線接口的串行EEPROM,開機畫面在LCD12864上顯示 仿真圖如下 仿真運行視頻 Proteus仿真--基于NM24C08的EEPROM仿真設計 附完整Proteus仿真資料…

零一萬物模型折騰筆記:官方 Yi-34B 模型基礎使用

當爭議和流量都消失后,或許現在是個合適的時間點,來拋開情緒、客觀的聊聊這個 34B 模型本身,尤其是實踐應用相關的一些細節。來近距離看看這個模型在各種實際使用場景中的真實表現和對硬件的性能要求。 或許,這會對也想在本地私有…

Docker本地部署Drupal內容管理框架并實現公網遠程訪問

文章目錄 前言1. Docker安裝Drupal2. 本地局域網訪問3 . Linux 安裝cpolar4. 配置Drupal公網訪問地址5. 公網遠程訪問Drupal6. 固定Drupal 公網地址7. 結語 前言 Dupal是一個強大的CMS,適用于各種不同的網站項目,從小型個人博客到大型企業級門戶網站。它…

bat腳本之findstr

findstr 是 Windows 操作系統中用于文本搜索的命令,它可以在文件中查找指定的字符串或正則表達式,并輸出匹配的行或行號。findstr 命令可以在命令提示符下直接使用,也可以在批處理腳本中嵌套使用。 以下是 findstr 命令的基本語法&#xff1…

使用條件格式突出顯示單元格數據-sdk

使用條件格式突出顯示單元格數據 2023 年 12 月 6 日 根據數據值將視覺提示應用于特定單元格、行或列,從而更輕松地識別模式和趨勢。 網格中的條件格式允許用戶根據單元格或范圍包含的數據將視覺樣式應用于單元格或范圍。它通過以數據驅動的方式突出顯示關鍵值、異常…

【基于Python的二手車數據可視化平臺的設計與實現】

基于Python的二手車數據可視化平臺的設計與實現 前言數據獲取與處理網絡爬蟲數據存儲 可視化平臺的設計與實現Flask框架數據可視化 創新點結語 前言 隨著社會的不斷發展,二手車市場也逐漸成為一個備受關注的領域。為了更好地為二手車的買家和賣家提供信息&#xff…

Python 實現全連接攻擊-1

實現或討論如何實現網絡攻擊,包括全連接攻擊(一種形式的拒絕服務攻擊),是不合適的,也違反了倫理和法律規定。無論是學術研究、安全測試還是其他目的,未經授權對網絡或系統進行攻擊都是非法和不道德的。 如…

計算和傳輸背后的時空觀

吞吐和速度(率)經常被混淆,當提到 100Gbps 網卡時,“它很快” 的意義可能只是 “它很多” 100Gbps 指 1s 內發送的比特數為 100G,如果在這 1s 內塞入更多比特,以下是兩種方式: 顯然,上面是更多&#xff…

安全防御–

安全防御 ASPF技術## FTP協議主機之間傳輸文件是IP網絡的一個重要功能,如今人們可以方便地使用網頁、郵箱進行文件傳輸。然而在互聯網早期,Web(World Wide Web,萬維網)還未出現,操作系統使用命令行的時代&a…

iOS分段控件UISegmentedControl使用

在故事板中添加UISegmentedControl 具體添加步聚如下: 選擇Xcode的View菜單下的Show Library (或者Shift+Common+L) 打開控件庫如下 在控件庫中輸入seg搜索控件,在出現Segmented Control后,將其拖到View Controller Scene中 到這里,添加分段控件UI已完成, 接下來將控件與變量…

shell的變量

Linux 系統中 shell 變量的使用 文章目錄 (1)簡介(2)變量分類(3)變量賦值(4)變量命名(5)變量引用(6)變量清除(7&#xff0…

基于JavaWeb+SSM+Vue馬拉松報名系統微信小程序的設計和實現

基于JavaWebSSMVue馬拉松報名系統微信小程序的設計和實現 源碼獲取入口Lun文目錄前言主要技術系統設計功能截圖訂閱經典源碼專欄Java項目精品實戰案例《500套》 源碼獲取 源碼獲取入口 Lun文目錄 1系統概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系統設計思想 1 2相關技術 2 2.…

WPF仿網易云搭建筆記(0):項目搭建

文章目錄 前言項目地址項目Nuget包搭建項目初始化項目架構App.xaml引入MateralDesign資源包 項目初步分析將標題欄去掉DockPanel初步布局 資源字典舉例 結尾 前言 最近在找工作,發現沒有任何的WPF可以拿的出手的工作經驗,打算仿照網易云搭建一個WPF版本…

Numpy 實現基尼指數算法的決策樹

基尼系數實現決策樹 基尼指數 Gini ? ( D ) 1 ? ∑ k 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 \operatorname{Gini}(D)1-\sum_{k1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} Gini(D)1?k1∑K?(∣D∣∣Ck?∣?)2 特征 A A A條件下集合 D D D的基尼指數: Gi…

使用ssm框架進行mapper或者service單純測試時報錯問題處理

問題 使用注解方式配置好ssm后,無法在測試中單獨測試mapper層和service層。效果如下: 解決 關閉配置類中的EnableWebMvc 再次運行,即可完成測試。

【SpringBoot篇】5種類型參數傳遞json數據傳參的操作

🎊專欄【SpringBoot】 🍔喜歡的詩句:天行健,君子以自強不息。 🎆音樂分享【如愿】 🎄歡迎并且感謝大家指出小吉的問題🥰 文章目錄 🌺普通參數🌺POJO參數🌺嵌套…

uniapp切換頁面時報錯問題

我們來看如下錯誤: 該錯誤的意思是不能切換到 tabbar 頁面。tabbar頁面通常是公共頁面或者底部導航欄,如果我們用 navigateTo 或者 redirectTo 都不能實現頁面切換。 我們有兩種方式: 第一種是用 switchTab 來進行切換,但注意切…

xml文本轉Java對象

Java對象轉String public static String toData(Object object) throws Exception {JAXBContext jc JAXBContext.newInstance(object.getClass());Marshaller m jc.createMarshaller();StringWriter output new StringWriter(2048);m.marshal(object, output);String data …