File類的應用--拷貝

File類的應用--拷貝

拷貝一個目錄,包括裏面的文件,要用到遞歸.也就是函數本身調用自身.

遞歸要注意:

1,限定條件,結束遞歸

2,要注意遞歸的次數,儘量避免內存溢出


思路:1,在拷貝的位置先創建目

         2,遍歷時不是文件,是文件則直接拷貝過去

不是文件則遞歸,創建目錄,再對目錄中的文件在進行判斷


public class CopyDir {


/**
* @param args
*/
public static void main(String[] args) throws Exception {
File src = new File("F:/java/day21.1");
File dest = new File("F:");
copyDir(src, dest);
}


public static void copyDir(File src, File dest) throws Exception {
// 獲取要創建的文件夾的路徑
File newDir = new File(dest, src.getName());
// 在指定路徑下創建新的文件夾
newDir.mkdir();
// 獲取源文件中該文件夾中的文件
File[] arr = src.listFiles();
// 遍歷
for (File file : arr) {
// 判斷是否是文件,若是文件則直接拷貝
if (file.isFile())
// 拷貝到新創建的目錄下
copyFile(file, new File(newDir, file.getName()));
if (file.isDirectory())
//是文件夾則遞歸
copyDir(file, newDir);
}
}

//拷貝文件
private static void copyFile(File src, File dest) throws IOException {
try (InputStream is = new FileInputStream(src);
OutputStream os = new FileOutputStream(dest);) {
byte[] buff = new byte[1024];
int len;
while ((len = is.read(buff)) != -1) {
os.write(buff, 0, len);
}
}
}


}


發佈了35 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章