您的位置:首页 > 编程语言 > Java开发

用递归方法复制目录、子目录以及文件(文件用到IO流)

2017-12-29 10:19 627 查看
package com.dragon.java.newcopyfile;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test {
public static void main(String args[]) {
File file = new File("f:/Exercises");
File file2 = new File("f:/book");
copyFile(file, file2);
}

// 递归方法
public static void copyFile(File file, File file2) {
// 当找到目录时,创建目录
if (file.isDirectory()) {
file2.mkdir();
File[] files = file.listFiles();
for (File file3 : files) {
// 递归
copyFile(file3, new File(file2, file3.getName()));
}
//当找到文件时
} else if (file.isFile()) {
File file3 = new File(file2.getAbsolutePath());
try {
file3.createNewFile();
copyDatas(file.getAbsolutePath(), file3.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}

// 复制文件数据的方法
public static void copyDatas(String filePath, String filePath1) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
// 字节流
fis = new FileInputStream(filePath);
fos = new FileOutputStream(filePath1);
byte[] buffer = new byte[1024];
while (true) {
int temp = fis.read(buffer, 0, buffer.length);
if (temp == -1) {
break;
} else {
fos.write(buffer, 0, temp);
}
}
} catch (IOException e) {
System.out.println(e);
} finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java IO