最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaSE經(jīng)典小練習(xí)項目之拷貝文件夾

 更新時間:2023年10月07日 11:36:59   作者:在下小吉.  
文件拷貝是一個常見的任務(wù),無論是備份文件,還是將文件從一個位置復(fù)制到另一個位置,文件拷貝都是必不可少的,這篇文章主要給大家介紹了關(guān)于JavaSE經(jīng)典小練習(xí)項目之拷貝文件夾的相關(guān)資料,需要的朋友可以參考下

前言

在學(xué)io流的時候,我發(fā)現(xiàn)聽的課程中講的這個小練習(xí)很有幫助,就記錄了下來,防止忘記哈哈哈

在Java IO操作中,文件和目錄的拷貝功能是非常常用的。我們經(jīng)常需要將整個目錄下的所有文件復(fù)制到另一個位置進行備份。為了實現(xiàn)這個功能,Java提供了豐富的IO類讓我們方便操作。

本文將通過一個示例代碼,演示如何使用File類和流完成整個目錄的遞歸拷貝。我們僅需幾行代碼,就可以批量拷貝任意文件數(shù)量的目錄。希望這個實用的小Demo可以幫助大家更好地理解目錄處理和Java IO操作中的細節(jié)。讓我們開始今天的目錄拷貝之旅吧!

效果

我們發(fā)現(xiàn),src文件夾中有內(nèi)容,但是dest文件夾中沒有內(nèi)容

運行后發(fā)現(xiàn)

二者字節(jié)數(shù)一樣,完全復(fù)制過來了從兩張圖片可以看到,源文件夾中有一些文檔文件和子文件夾,目標(biāo)文件夾開始是完全空的。程序運行后,目標(biāo)文件夾中的內(nèi)容和源文件夾一模一樣,實現(xiàn)了完整的文件夾復(fù)制效果。

代碼

package IODemo1;
import java.io.*;
public class Demo1 {
    public static void main(String[] args) throws IOException {
        //創(chuàng)建對象表示數(shù)據(jù)源
        File src=new File("G:\\src");
        //創(chuàng)建對象表示目的地
        File dest=new File("G:\\dest");
        //調(diào)用方法開始拷貝
        copydir(src,dest);
    }
    private static void copydir(File src,File dest) throws IOException {
        //進入數(shù)據(jù)源
        File[] files=src.listFiles();
        //遍歷數(shù)組
        for (File file:files){
            if (file.isFile()){
                //判斷文件,拷貝
                FileInputStream fis=new FileInputStream(file);
                FileOutputStream fos=new FileOutputStream(new File(dest,file.getName()));
                byte[] bytes=new byte[1024];
                int len;
                while ((len=fis.read(bytes))!=-1){
                    fos.write(bytes,0,len);
                }
                fos.close();
                fis.close();
            }else {
                copydir(file,new File(dest,file.getName()));
            }
        }
    }
}

講解

??代碼結(jié)構(gòu)上也是采用了函數(shù)調(diào)用

??在主函數(shù)中要設(shè)置好copy的數(shù)據(jù)源和目的地,然后調(diào)用自定義函數(shù)完成copy

??下面copy的過程是使用循環(huán),判斷文件后,進行復(fù)制

??這里我們編寫一個方法叫copydir,利用File類能夠遞歸遍歷文件夾結(jié)構(gòu),配合流對象實現(xiàn)文件讀取和寫入,這樣就可以批量復(fù)制整個文件夾的內(nèi)容。

??直接寫入目標(biāo)文件夾是不行的,會改變結(jié)構(gòu)。必須針對每個源文件創(chuàng)建同名的目標(biāo)文件對象,這樣寫入才能保證目錄樹的樣子不變。

重點

主要來說一下下面的內(nèi)容

為什么要new一個file,而不是直接寫到dest文件夾中呢

是因為我們是要把src文件夾的文件復(fù)制到dest文件夾中,但是要 復(fù)制到dest文件夾的哪個地方呢 

是要寫到dest文件夾中的文件中

但是現(xiàn)在dest文件夾是空的

所以要new一個file 

我們通過這個簡單的練習(xí),學(xué)會了使用File類結(jié)合流完成目錄的遞歸拷貝。注意使用new File構(gòu)造目標(biāo)文件對象的技巧,這是保證目錄結(jié)構(gòu)同步的關(guān)鍵。文件和目錄的處理是Java IO中常見的操作之一,掌握拷貝,刪除,壓縮解壓等技能,可以讓我們更便捷地處理文件資源。本文內(nèi)容較簡單,如果有其他目錄處理相關(guān)的問題,歡迎留言討論??梢孕薷拇a,只復(fù)制某種類型的文件,比如只復(fù)制txt文件。歡迎大家繼續(xù)探討目錄操作的相關(guān)問題。學(xué)習(xí)編程最重要的是做練習(xí),希望大家要多寫代碼,成為技術(shù)高手!最后,希望大家要多動手練習(xí),才能真正掌握這些IO編程技巧。

總結(jié) 

到此這篇關(guān)于JavaSE經(jīng)典小練習(xí)項目之拷貝文件夾的文章就介紹到這了,更多相關(guān)JavaSE拷貝文件夾內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java MD5加密實現(xiàn)代碼

    java MD5加密實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了java MD5加密實現(xiàn)過程,為大家分享了MD5加密代碼,感興趣的小伙伴們可以參考一下
    2016-08-08
  • SpringBoot訪問靜態(tài)資源的配置及順序說明

    SpringBoot訪問靜態(tài)資源的配置及順序說明

    這篇文章主要介紹了SpringBoot訪問靜態(tài)資源的配置及順序說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • ?Java圖形化界面編程實現(xiàn)簡單計算器

    ?Java圖形化界面編程實現(xiàn)簡單計算器

    這篇文章主要介紹了Java圖形化界面編程實現(xiàn)簡單計算器,下面文章圍繞Java圖形化界面編程實現(xiàn)簡單計算器的相關(guān)資料展開詳細內(nèi)容,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-01-01
  • SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程圖解

    SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程圖解

    這篇文章主要介紹了SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Java集合和數(shù)組的區(qū)別

    Java集合和數(shù)組的區(qū)別

    本文主要介紹了Java集合和數(shù)組的區(qū)別。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • SpringBoot 整合 JWT + Redis 實現(xiàn)登錄鑒權(quán)

    SpringBoot 整合 JWT + Redis 實現(xiàn)登錄鑒權(quán)

    本文主要介紹了SpringBoot 整合 JWT + Redis 實現(xiàn)登錄鑒權(quán),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-02-02
  • java如何使用jdbc連接TDSQL數(shù)據(jù)庫

    java如何使用jdbc連接TDSQL數(shù)據(jù)庫

    TDSQL是騰訊打造的一款分布式數(shù)據(jù)庫產(chǎn)品,具備強一致高可用、全球部署架構(gòu)、分布式水平擴展、高性能、企業(yè)級安全等特性,本文我們就來看看Java如何使用jdbc連接TDSQL數(shù)據(jù)庫吧
    2025-06-06
  • 淺析java并發(fā)中的Synchronized關(guān)鍵詞

    淺析java并發(fā)中的Synchronized關(guān)鍵詞

    這篇文章主要介紹了java并發(fā)中的Synchronized關(guān)鍵詞,本文通過思路代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Java自帶注解、元注解、自定義注解的區(qū)別

    Java自帶注解、元注解、自定義注解的區(qū)別

    本文主要介紹了Java自帶注解、元注解、自定義注解的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java FastJson使用教程

    Java FastJson使用教程

    這篇文章主要介紹了如何使用FastJson,幫助大家將 Java 對象轉(zhuǎn)換為 JSON 格式,感興趣的朋友可以了解下
    2020-10-10

最新評論

阿勒泰市| 舟山市| 宣武区| 靖边县| 平邑县| 兴义市| 长武县| 台南市| 奎屯市| 洛浦县| 泸水县| 酒泉市| 抚宁县| 宜君县| 且末县| 英德市| 金寨县| 洛南县| 华池县| 新建县| 时尚| 彭阳县| 攀枝花市| 洞口县| 江都市| 聂荣县| 太康县| 贡嘎县| 广德县| 景洪市| 星子县| 巫溪县| 宁陕县| 襄垣县| 楚雄市| 航空| 芜湖市| 正安县| 绥中县| 金门县| 博白县|