不BB,上代码
文件操作获取了读写流,在用完之后一定要记得关闭,不然你就准备找一天的bug(文件被占用,创建读写流失败);
/**
* 复制文件 递归方法
* @param src 源文件路径(包括文件夹)
* @param des 目标路径
* @param loggersFilesName 过滤文件名称
* @throws Exception
*/
public void copy(String src, String des, String loggersFilesName) throws Exception {
//初始化文件复制File file1=new File(src);
//文件判断 有不管 没有创建
if(!file1.exists()){
file1.mkdirs();
}
File[] fs=file1.listFiles();
//初始化文件粘贴
File file2=new File(des);
//文件判断 有不管 没有创建
if(!file2.exists()){
file2.mkdirs();
}
for (File f : fs) {
if(f.isFile()){ //文件
fileCopy(f.getPath(),des+"\\"+f.getName()); //调用文件拷贝的方法
}else if(f.isDirectory()){//文件夹
//过滤不需要copy的文件
if(!loggersFilesName.equals(f.getName())){
copy(f.getPath(),des+"\\"+f.getName(),loggersFilesName);//继续调用复制方法
}
}
}
}
/**
* 文件复制方法
*/
public void fileCopy(String src, String des) throws Exception {
//io流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(src));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(des));
int i = -1;//获取长度
byte[] bt = new byte[2014];//缓冲区
while ((i = bis.read(bt))!=-1) {
bos.write(bt, 0, i);
}
bis.close();
bos.close();
//关闭流
}