黑马程序员技术交流社区
标题:
分享一个面试题:拷贝指定目录下的所有文件以及目录
[打印本页]
作者:
yangcy
时间:
2014-7-9 17:44
标题:
分享一个面试题:拷贝指定目录下的所有文件以及目录
分享一个面试题:拷贝指定目录下的所有文件以及目录
分析:运用递归方法将该目录下所有文件以及目录遍历出来,然后调用创建文件方法创建文件。
package com.java;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyAllFiles {
/**
* 拷贝指定目录下的所有文件以及目录
*/
public static void main(String[] args) {
File file = new File("e:\\文件夹一");
listAll("f:\\文件夹一\\", file);
}
private static void listAll(String destDir, File file) {
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
// 如果是目录,则递归向下继续寻找
listAll(destDir + files[i].getName() + "\\", files[i]);
} else {
// 如果是文件,则开始拷贝
copyFile(destDir, files[i]);
}
}
}
private static void copyFile(String destDir, File file) {
File fileDir = new File(destDir);
// 创建目录
if (!fileDir.exists()) {
fileDir.mkdirs();
}
if (file == null) {
return;
}
// 拷贝文件
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(file);
fos = new FileOutputStream(destDir + file.getName());
int ch = -1;
byte[] buf = new byte[1024];
while ((ch = fis.read(buf)) != -1) {
fos.write(buf, 0, ch);
fos.flush();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
复制代码
作者:
zy524488
时间:
2014-7-9 21:31
这是黑马面试的面试题吗
作者:
hengxing0079
时间:
2014-7-10 06:43
黑马面试题否?楼主亲身经历么?
作者:
月明星稀
时间:
2014-7-10 08:38
是黑马的吗
作者:
Running
时间:
2014-7-10 08:52
最烦的就是异常处理,,面试时可不可以直接抛啊。。
作者:
a191170796
时间:
2014-7-10 09:00
楼主不回复吗???
作者:
老二
时间:
2014-7-10 09:26
难道不难就是要熟练,看基础老不牢固了。
作者:
790324255a
时间:
2014-7-10 09:42
这首面试题 手写代码的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2