【Java文件操作(三)】递归复制文件夹内所有文件
生活随笔
收集整理的這篇文章主要介紹了
【Java文件操作(三)】递归复制文件夹内所有文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我的博客——Java文件操作系列
【Java文件操作(一)】遞歸打印文件目錄
【Java文件操作(二)】刪除文件夾,但保留其內部文件
【Java文件操作(三)】遞歸復制文件夾內所有文件
【Java文件操作(四)】遞歸套遞歸,計算每個文件夾大小
【Java文件操作(五)】從txt文件中讀取字符串、亂碼原因
【Java文件操作(六)】借助內存復制圖片:ByteArrayOutputStream\FileOutputStream等辨析
【Java 編碼轉換】將漢字轉化為gb2312編碼
預備:簡單的txt寫文件
package cn.hanquan.test;import java.io.FileWriter; import java.io.IOException;//簡單的txt寫文件 public class FileOutputStreamTest {public static String SRC = "C:\\Users\\Bug\\Desktop\\test.txt";public static void main(String[] args) throws IOException {FileWriter is = new FileWriter(SRC);is.append("ddd").append("666"); // 可以用 write("666")is.close();} }預備:簡單的txt文件復制方法
這種方法,只能復制文件,不能復制文件夾
package cn.hanquan.test;import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;//簡單的txt文件復制 public class FileOutputStreamTest {public static void main(String[] args) {try (// 創建字節輸入流FileInputStream fis = new FileInputStream("C:\\Users\\Bug\\Desktop\\git.txt");// 創建字節輸出流FileOutputStream fos = new FileOutputStream("C:\\Users\\Bug\\Desktop\\newFile.txt")) {byte[] bbuf = new byte[32];int hasRead = 0;// 循環從輸入流中取出數據while ((hasRead = fis.read(bbuf)) > 0) {// 每讀取一次,即寫入文件輸出流,讀了多少,就寫多少。fos.write(bbuf, 0, hasRead);}} catch (IOException ioe) {ioe.printStackTrace();}} }進階:遞歸復制文件夾
- 思路:遞歸每一個文件夾,訪問其內部
- 如果當前是文件,則復制到相應的路徑
- 如果當前是文件夾,則在相應的路徑創建一個新的文件夾
運行結果
復制成功,查看其大小相同,并且文件可以正常打開。
總結
以上是生活随笔為你收集整理的【Java文件操作(三)】递归复制文件夹内所有文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】利用容器存储表格数据
- 下一篇: java美元兑换,(Java实现) 美元