黑马程序员技术交流社区
标题:
分享一道入学测试题
[打印本页]
作者:
静水流华
时间:
2014-10-10 18:16
标题:
分享一道入学测试题
package test8;
/*第8题:编写程序,拷贝一个带内容的文件夹。例如:将c:\program files\java文件夹拷贝到d盘
* 根目录。
* 思路:类File表示抽象的路径的路径或文件名
* 用for循环增强遍历路径下的每一个文件
* -1.在遍历的时候创建目标目录中的子目录和源目录的同名文件
* -2.调用文件复制方法复制文件。
* -3.运用递归
* 用BufferedFileReader和BufferedFilerWriter将文件夹中的每一个文件复制到指定文件夹中
*测试:在代码的指定位子输入源文件夹和目标文件夹
* */
import java.io.*;
public class Test8 {
public static void main(String[] args) throws Exception {
File file1=new File("F:\\java\\10-4\\com.it.heima");//在这里输入源文件夹
File file2=new File("F:\\java\\10-4\\com.it.heima-2");//在这里输入目标文件夹
//File[] files1=file1.listFiles();
System.out.println("hah");
file2.mkdir();//创建目标文件夹
acquireFile(file1,file2);//复制文件
}
//复制文件方法
public static void copyFile(File source,File target) throws Exception{
BufferedReader br=new BufferedReader(new FileReader(source));
BufferedWriter bw=new BufferedWriter(new FileWriter(target));
String str=null;
while((str=br.readLine())!=null){
bw.write(str);
bw.newLine();
bw.flush();
}
br.close();
bw.close();
}
//遍历源目录,创建目标目录,复制文件
public static void acquireFile(File source,File target){
File[] files=source.listFiles();
File subDirectory=target;//子目录标识:可动态的表示每个子目录的路径
for(File m:files){//for循环加强遍历源目录下的每一个文件及文件夹
if(m.isDirectory()==true){//判断是否为文件夹
subDirectory=new File(subDirectory,m.getName());//创建同名文件夹
subDirectory.mkdir();
acquireFile(m,subDirectory);//运用递归
}else{
try {
File file=new File(subDirectory,m.getName());//创建非文件夹文件
copyFile(m,file);//复制文件
} catch (Exception e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}}
subDirectory=target;//遍历完每个子目录后将子目录标识还原
}
}
}
复制代码
作者:
张波
时间:
2014-10-10 19:55
你是报名哪一期的?加好友啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2