A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 静水流华 中级黑马   /  2014-10-10 18:16  /  1491 人查看  /  1 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package test8;
  2. /*第8题:编写程序,拷贝一个带内容的文件夹。例如:将c:\program files\java文件夹拷贝到d盘
  3. * 根目录。
  4. * 思路:类File表示抽象的路径的路径或文件名
  5. * 用for循环增强遍历路径下的每一个文件
  6. *         -1.在遍历的时候创建目标目录中的子目录和源目录的同名文件
  7. *         -2.调用文件复制方法复制文件。
  8. *         -3.运用递归
  9. * 用BufferedFileReader和BufferedFilerWriter将文件夹中的每一个文件复制到指定文件夹中
  10. *测试:在代码的指定位子输入源文件夹和目标文件夹
  11. * */
  12. import java.io.*;
  13. public class Test8 {

  14.         public static void main(String[] args) throws Exception {
  15.                 File file1=new File("F:\\java\\10-4\\com.it.heima");//在这里输入源文件夹
  16.                 File file2=new File("F:\\java\\10-4\\com.it.heima-2");//在这里输入目标文件夹
  17.                 //File[] files1=file1.listFiles();
  18.                 System.out.println("hah");
  19.                 file2.mkdir();//创建目标文件夹
  20.                 acquireFile(file1,file2);//复制文件
  21.                
  22.         }
  23.         //复制文件方法
  24.         public static void copyFile(File source,File target) throws Exception{
  25.                 BufferedReader br=new BufferedReader(new FileReader(source));
  26.                 BufferedWriter bw=new BufferedWriter(new FileWriter(target));
  27.                 String str=null;
  28.                 while((str=br.readLine())!=null){
  29.                         bw.write(str);
  30.                         bw.newLine();
  31.                         bw.flush();
  32.                 }
  33.                 br.close();
  34.                 bw.close();
  35.         }
  36.         //遍历源目录,创建目标目录,复制文件
  37.         public static void acquireFile(File source,File target){
  38.                         File[] files=source.listFiles();
  39.                         File subDirectory=target;//子目录标识:可动态的表示每个子目录的路径
  40.                         for(File m:files){//for循环加强遍历源目录下的每一个文件及文件夹
  41.                                 if(m.isDirectory()==true){//判断是否为文件夹
  42.                                          subDirectory=new File(subDirectory,m.getName());//创建同名文件夹
  43.                                          subDirectory.mkdir();
  44.                                         acquireFile(m,subDirectory);//运用递归
  45.                                 }else{
  46.                                 try {
  47.                                         File file=new File(subDirectory,m.getName());//创建非文件夹文件
  48.                                         copyFile(m,file);//复制文件
  49.                                 } catch (Exception e) {
  50.                                         // TODO 自动生成的 catch 块
  51.                                         e.printStackTrace();
  52.                                 }}
  53.                                 subDirectory=target;//遍历完每个子目录后将子目录标识还原
  54.                         }
  55.                                
  56.                 }
  57.         }


复制代码


1 个回复

倒序浏览
你是报名哪一期的?加好友啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马