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

java实现递归复制文件

2015-12-23 15:57 127 查看
今天写文件的读写,想起来如果要复制文件夹怎么办?在借鉴别人的代码基础上写出来这个程序。

<pre name="code" class="java">package com.ftx.copyfile;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
/**
*
* @author FTX
*
*/

public class Test {

public static boolean fileCopy(String src, String des) {
File srcFile = new File(src);
File desFile = new File(des);
byte[] p = new byte[1024];
String str = "";

try {
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(desFile);
int i;
while ((i = fis.read(p))>-1) {//必须大于-1,不是大于0

fos.write(p);//文件的复制
}
fos.close();
fis.close();
return true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;

}

public static boolean folderCopy(String src, String des) {

File srcFile=new File(src);
File desFile=new File(des);
File[]files=srcFile.listFiles();
boolean flag=false;
if(!desFile.exists())desFile.mkdir();
for(int i=0;i<files.length;i++)
{
String path=files[i].getAbsolutePath();
if(files[i].isDirectory()){
File newFile=new File(path.replace(src, des));
if(!newFile.exists())newFile.mkdir();
folderCopy(path,path.replace(src, des));//递归调用
}
else
flag=fileCopy(path,path.replace(src, des));
}
return flag;
}
public static void main(String[] args) {
folderCopy("E:\\1", "F:\\1");
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: