1. 程式人生 > >java-通過IO流復制文件夾到指定目錄

java-通過IO流復制文件夾到指定目錄

fileinput new out try 復制文件 ati catch dex demo

public class copyDirectoryDemo {

public static void main(String[] args) {
File srcFolder = new File("C:\\Users\\MA\\Desktop\\IOtest");
File destFolder = new File("C:\\Users\\MA\\Desktop\\IOtest\\test");
fun(srcFolder, destFolder);
}

public static void fun(File srcFolder, File destFolder) {
File[] fileArray = srcFolder.listFiles();
if (!destFolder.exists()) {
destFolder.mkdir();
}
for (File file : fileArray) {
if (file.isDirectory()) {
String folderName = file.getName();
File newDestFolder = new File(destFolder, folderName);
fun(file, newDestFolder);
} else {
String fileName = file.getName();
File destFile = new File(destFolder, fileName);
copy(file, destFile);
}
}
}

public static void copy(File file, File destFile) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(file));
bos = new BufferedOutputStream(new FileOutputStream(destFile));
byte[] bys = new byte[1024];
int len = 0;
while((len=bis.read(bys))!=-1){
bos.write(bys,0,len);

}
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}finally{
if(bis!=null){
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(bos!=null){
try {
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
}
}

java-通過IO流復制文件夾到指定目錄