读取两个文件夹名称,将A文件夹内容全部拷贝到B文件夹(不包含A文件夹里面的zi'wen'jian'jia)
读取两个文件夹名称,将A文件夹内容全部拷贝到B文件夹(不包含A文件夹里面的zi'wen'jian'jia)
4,根据两个文件夹名称,将A文件夹内容全部拷贝到B文件夹(不包含A文件夹里面的子文件夹)的另一种方法。
package com.studyjava.chapter5;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Practice4 {
public static void main(String[] args) {
copyFilesToFloder("D:\\dev\\test\\bw\\1\\", "D:\\dev\\test\\bw\\2\\");
}
public static void copyFilesToFloder(String source, String target) {
File src = new File(source);
File dest = new File(target);
if (src.isDirectory()) {
File[] files = src.listFiles();
for(File f: files) {
if(f.isFile())
copyFile(f, new File(target, f.getName()));//通过目标路径和文件名构造目标File文件对象
}
}
else {
System.out.println("the source should be a floder.");
}
}
public static void copyFile(File src, File dest) {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream(src));
bos = new BufferedOutputStream(new FileOutputStream(dest));
byte[] bys = new byte[1024];
int length = -1;
while ((length = bis.read(bys))!=-1) {
bos.write(bys, 0, length);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
if(bis!=null)
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(bos!=null)
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}