文件夹的复制
先写一个复制文件的代码
/**
- 复制文件到目录目标
- @param srcFile 源文件
- @param destDir 目标目录
*/
public static void copyFileToDirectory(File srcFile,File destDir) throws IOException {
//使用输入流读取srcFile
FileInputStream fis=new FileInputStream(srcFile);
//使用输出流往destDir目录中的和srcFile同名的文件中写入数据
File destFile=new File(destDir,srcFile.getName());
FileOutputStream fos=new FileOutputStream(destFile);
//复制文件中的内容
byte[] bs=new byte[1024];
int len; //记录每次读取的有效字节个数
while ((len=fis.read(bs))!=-1){
fos.write(bs,0,len);
}
//释放资源
fos.close();
fis.close();
}
再写一个复制文件夹的方法
/**
- 把源文件夹复制到目标文件夹中
- @param srcDir 源文件夹
- @param destDir 目标文件夹
*/
public static void copyDirectoryToDirectory(File srcDir,File destDir) throws IOException {
//判断srcDir是否为文件夹
if(srcDir.isDirectory()){
//在目标文件夹中创建一个和源文件夹同名的文件夹
File dest=new File(destDir,srcDir.getName());
dest.mkdirs();
//遍历srcDir文件夹
File[] files = srcDir.listFiles();
if(files!=null){
for (File file : files) {
if(file.isFile()){
//把文件复制到新建的dest文件夹中
copyFileToDirectory(file,dest);
}else{
//把文件夹复制到新建的dest文件夹中
copyDirectoryToDirectory(file,dest);
}
}
}
}
}
在main方法中测试
public static void main(String[] args) throws IOException {
File srcDir = new File("/Users/wangqi/Desktop/itheima");
File destDir = new File("/Users/wangqi/Desktop/itcast");
copyDirectoryToDirectory(srcDir,destDir);
}