黑马程序员技术交流社区
标题:
关于集合
[打印本页]
作者:
zl78365336
时间:
2013-12-7 16:09
标题:
关于集合
本帖最后由 zl78365336 于 2013-12-7 23:07 编辑
怎样把集合里面的文件存到指定的路径,最后的方法把我搞混了··
import java.io.*;
import java.util.*;
public class CopyFilesTest {
public static void main(String[] args) throws Exception {
File src = new File("e:/zz");
File des = new File("e:/zl");
List<File> list = new ArrayList<File>();
showDir(src,list);
copyFiles(list,des);
}
public static void showDir(File dir,List<File> list) throws Exception {
File[] files = dir.listFiles();
for(File file : files){
if(file.isDirectory())//判断是否为文件夹
showDir(file,list);//是文件夹,递归
else
list.add(file);
}
}
private static void copyFiles(List<File> list,File dir)throws Exception {
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(dir));
for(File f : list){
····················//怎么接
out.write();
}
out.close();
}
}
复制代码
作者:
谢文斌
时间:
2013-12-7 16:23
哥们,这个是题目吧?
就是在创建文件的时候,判断这个文件的父目录是否存在,不存在则要mkdirs()
作者:
Weix1992
时间:
2013-12-7 16:45
连读取流都没有 怎么复制数据? File 对象只是把硬盘上的一个文件抽象成了一个对象,并不是说那个文件就是个file了 然后你就可以直接把file放到其他地方就是复制了
作者:
肖川
时间:
2013-12-7 17:22
哥们,以下代码供(满足的你要求)你参考:
package com.demo.test;
import java.io.*;
import java.util.*;
public class Demo4
{
public static void main(String[] args) throws Exception
{
List list = new ArrayList();
File res = new File("d:\\test");
File des = new File("d:\\test\\dir");
showDir(res, list);
copyFiles(list, des);
}
public static void showDir(File dir, List<File> list) throws Exception
{
File[] files = dir.listFiles();
for (File file : files)
{
if (file.isDirectory())// 判断是否为文件夹
showDir(file, list);// 是文件夹,递归
else
list.add(file);
}
}
private static void copyFiles(List<File> list, File dir) throws Exception
{
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
Iterator it = list.iterator();
for (; it.hasNext();)
{
File res = new File(it.next().toString());
File des = new File(dir, res.getName());
des.createNewFile();
bis = new BufferedInputStream(new FileInputStream(res));
bos = new BufferedOutputStream(new FileOutputStream(des));
copy(bis, bos);
System.out.println("ok");
}
}
private static void copy(BufferedInputStream bis, BufferedOutputStream bos) throws Exception
{
byte[] buf = new byte[1024*8];
int len = 0;
while((len=bis.read(buf))!=-1){
bos.write(buf,0,len);
}
bis.close();
bos.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2