黑马程序员技术交流社区

标题: 关于集合 [打印本页]

作者: zl78365336    时间: 2013-12-7 16:09
标题: 关于集合
本帖最后由 zl78365336 于 2013-12-7 23:07 编辑

怎样把集合里面的文件存到指定的路径,最后的方法把我搞混了··


  1. import java.io.*;
  2. import java.util.*;

  3. public class CopyFilesTest {
  4.         public static void main(String[] args) throws Exception {
  5.                 File src = new File("e:/zz");
  6.                 File des = new File("e:/zl");
  7.                 List<File> list = new ArrayList<File>();
  8.                 showDir(src,list);
  9.                 copyFiles(list,des);
  10.         }

  11.         public static void showDir(File dir,List<File> list) throws Exception {

  12.                 File[] files = dir.listFiles();
  13.                 for(File file : files){
  14.                         if(file.isDirectory())//判断是否为文件夹
  15.                                 showDir(file,list);//是文件夹,递归
  16.                         else
  17.                                 list.add(file);
  18.                 }
  19.         }
  20.         private static void copyFiles(List<File> list,File dir)throws Exception {


  21.                 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(dir));               

  22.                 for(File f : list){
  23.                         ····················//怎么接
  24.                         out.write();
  25.                         
  26.                 }
  27.                 out.close();
  28.         }
  29. }


复制代码


作者: 谢文斌    时间: 2013-12-7 16:23
哥们,这个是题目吧?
就是在创建文件的时候,判断这个文件的父目录是否存在,不存在则要mkdirs()
作者: Weix1992    时间: 2013-12-7 16:45
连读取流都没有 怎么复制数据? File 对象只是把硬盘上的一个文件抽象成了一个对象,并不是说那个文件就是个file了 然后你就可以直接把file放到其他地方就是复制了
作者: 肖川    时间: 2013-12-7 17:22
哥们,以下代码供(满足的你要求)你参考:
  1. package com.demo.test;

  2. import java.io.*;
  3. import java.util.*;

  4. public class Demo4
  5. {
  6.         public static void main(String[] args) throws Exception
  7.         {
  8.                 List list = new ArrayList();
  9.                 File res = new File("d:\\test");
  10.                 File des = new File("d:\\test\\dir");
  11.                 showDir(res, list);
  12.                 copyFiles(list, des);
  13.         }

  14.         public static void showDir(File dir, List<File> list) throws Exception
  15.         {

  16.                 File[] files = dir.listFiles();
  17.                 for (File file : files)
  18.                 {
  19.                         if (file.isDirectory())// 判断是否为文件夹
  20.                                 showDir(file, list);// 是文件夹,递归
  21.                         else
  22.                                 list.add(file);
  23.                 }
  24.         }

  25.         private static void copyFiles(List<File> list, File dir) throws Exception
  26.         {
  27.                 BufferedInputStream bis = null;
  28.                 BufferedOutputStream bos = null;
  29.                 Iterator it = list.iterator();
  30.                 for (; it.hasNext();)
  31.                 {
  32.                         File res = new File(it.next().toString());
  33.                         File des = new File(dir, res.getName());
  34.                         des.createNewFile();
  35.                         bis = new BufferedInputStream(new FileInputStream(res));
  36.                         bos = new BufferedOutputStream(new FileOutputStream(des));
  37.                         copy(bis, bos);
  38.                         System.out.println("ok");
  39.                 }
  40.         }

  41.         private static void copy(BufferedInputStream bis, BufferedOutputStream bos) throws Exception
  42.         {
  43.                
  44.                 byte[] buf = new byte[1024*8];
  45.                 int len = 0;
  46.                 while((len=bis.read(buf))!=-1){
  47.                         bos.write(buf,0,len);
  48.                 }
  49.                 bis.close();
  50.                 bos.close();
  51.         }

  52. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2