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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 我本灬无名 高级黑马   /  2015-6-8 23:06  /  1436 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老规矩,拿走评论。

求给个技术分,哇。伤脑子的东西。。
  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedOutputStream;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileOutputStream;
  6. import java.io.IOException;

  7. /*
  8. * 复制多级文件夹。
  9. * 思路:
  10. * 首先创建相同名字的文件夹及文件名字,不能考虑复制内容。
  11. * 创建完毕,读写当前的文件对象
  12. */
  13. public class Test5 {
  14.         public static void main(String[] args) throws IOException {
  15.                 // 封装读取对象
  16.                 File file = new File("F:\\java");
  17.                 // 创建写入对象
  18.                 File file2 = new File("F:\\ja");
  19.                 copyFile(file, file2);

  20.         }

  21.         private static void copyFile(File yuan, File mu) throws IOException{
  22.                 if(yuan!=null){
  23.                 //判断传进来的源文件是不是文件夹
  24.                
  25.                 if(yuan.isDirectory()){
  26.                         //是文件夹,那么判断目标目录是否存在,不存在就创建
  27.                         if(!mu.exists()){
  28.                                 mu.mkdir();
  29.                         }
  30.                         //获取文件下所有对象名
  31.                         String [] files =yuan.list();
  32.                         //遍历
  33.                         for(String f :files){
  34.                                 //递归并创建新的yuan,mu对象
  35.                                 File yuanFile = new File(yuan,f);
  36.                                 File muFile =new File(mu,f);
  37.                                 copyFile(yuanFile,muFile);
  38.                                
  39.                         }
  40.                         //不是文件夹就是文件
  41.                 }else{
  42.                         //创建读写对象,将原文件内容读取到目标文件。保证能读取所有文件,使用高效字节流
  43.                         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(yuan));
  44.                         BufferedOutputStream bos =new BufferedOutputStream(new FileOutputStream(mu));
  45.                          //基本做法,数组
  46.                         byte[] bys =new byte[1024];
  47.                         int len =0;
  48.                         while((len =bis.read(bys))!=-1){
  49.                                 bos.write(bys,0,len);
  50.                                 bos.flush();
  51.                         }
  52.                         bos.close();
  53.                         bis.close();
  54.                 }
  55.                
  56.         }}
  57. }
复制代码

评分

参与人数 2黑马币 +3 收起 理由
黑马:二师兄 + 1 顶一个
LANC + 2

查看全部评分

6 个回复

倒序浏览
谢楼主,拿走了~!
回复 使用道具 举报
顶一个!
回复 使用道具 举报

1个币,峰哥。我醉了
回复 使用道具 举报
我本灬无名 发表于 2015-6-8 23:19
1个币,峰哥。我醉了

量不在多,在于质!
回复 使用道具 举报
为成为高级黑马而奋斗
回复 使用道具 举报
看起来很厉害的样子啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马