java遞歸實(shí)現(xiàn)復(fù)制一個(gè)文件夾下所有文件功能

今天開始學(xué)習(xí)java的IO,學(xué)了一個(gè)復(fù)制文件的例子程序后想自己實(shí)現(xiàn)以下如何復(fù)制一個(gè)文件夾,復(fù)制文件的例子程序如下:

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括固原網(wǎng)站建設(shè)、固原網(wǎng)站制作、固原網(wǎng)頁制作以及固原網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,固原網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到固原省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

package io.github.liuzhan214;
import java.io.File;
import java.io.IOException;

public class Main {

  void solve() {
    File file = new File("F:\\javaIOTest\\new.txt");
    if(!file.exists()) {
      try {
        file.createNewFile();
      } 
      catch(IOException e) {
        e.printStackTrace();
      }
    }
    else {
      System.out.println(file.getName());
    }
    File dir = new File("F:\\javaIOTest");
    System.out.println(dir.getName());
    if(dir.isDirectory()) {
      String[] filename = dir.list();
      for(String str: filename) {
        File tempFile = new File(dir.getPath() + File.separator + str);
        if(tempFile.isFile()) {
          System.out.println("File: " + tempFile.getPath());
        }
        else if(tempFile.isDirectory()) {
          System.out.println("Dir: " + tempFile.getPath());
        }
      }
    }
  }
  public static void main(String[] args) {
    Main main = new Main();
    main.solve();
  }
}

createNewFile可以創(chuàng)建一個(gè)文件
mkdir()可以創(chuàng)建一個(gè)目錄
FileInputStream和FileOutoutStream可以實(shí)現(xiàn)文件的復(fù)制

實(shí)現(xiàn)文件夾復(fù)制的代碼如下

package io.github.liuzhan214;

import java.util.Scanner;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class Main {

  Scanner scanner = new Scanner(System.in);

  void solve() {
    String inputString = scanner.next();
    String outputString = scanner.next();
    File inputFile = new File(inputString);
    File outputFile = new File(outputString);
    if(inputFile.exists() == false || outputFile.exists() == false) {
      System.out.println("輸入或者輸出路徑不合法!"); return;
    }
    File sourceFile = inputFile;
    File destFile = new File(outputFile.getPath() + File.separator + inputFile.getName());
    try {
      myCopy(sourceFile,destFile);
    } catch(Exception e) {
      System.out.println("復(fù)制出現(xiàn)錯(cuò)誤!"); return;
    }
    System.out.println(sourceFile.getPath() + "->" + destFile.getPath() + "復(fù)制成功!"); 
  }

  void myCopy(File sourceFile,File destFile) throws Exception{
    //保證sourceFile一定存在,destFile一定不存在,因此先創(chuàng)建destFile
    if(sourceFile.isFile()) destFile.createNewFile();
    else if(sourceFile.isDirectory()) destFile.mkdir();

    if(sourceFile.isFile()) copy(sourceFile,destFile);
    else if(sourceFile.isDirectory()) {
      File[] files = sourceFile.listFiles();
      for(File ele : files) {
        File newDestFile = new File(destFile.getPath() + File.separator + ele.getName());
        myCopy(ele,newDestFile);
      }
    }
  }
  void copy(File sourceFile,File destFile) throws Exception{
    //保證sourceFile一定存在,destFile一定存在
    FileInputStream inputStream = new FileInputStream(sourceFile);
    FileOutputStream outputStream = new FileOutputStream(destFile);
    byte[] arr = new byte[256];
    int len = 0;
    while((len = inputStream.read(arr)) > 0) {
      outputStream.write(arr, 0, len);
    }
    inputStream.close();
    outputStream.close();
  }

  void close() {
    scanner.close();
  }
  public static void main(String[] args) {
    Main main = new Main();
    main.solve();
    main.close();
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

當(dāng)前標(biāo)題:java遞歸實(shí)現(xiàn)復(fù)制一個(gè)文件夾下所有文件功能
標(biāo)題來源:http://bm7419.com/article34/igegse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計(jì)、外貿(mào)建站、小程序開發(fā)外貿(mào)網(wǎng)站建設(shè)、域名注冊、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化