问题是这样的,我需要从数据库中读取文件的路径放在一个List中,然后把这些文件拷贝到另外一个目录,怎样才能实现,希望能说的详细一点,真的谢谢了 !!!!

解决方案 »

  1.   

    你根据LIST中的文件路径,循环生成一个file对象,然后copy,不就OK了吗
      

  2.   

    如LS所言。。Java中没有现成的Copy,用Stream写个静态方法A.copyTo (String from,String to)。
      

  3.   

    public void fileCopy(File file) throws Exception {
            FileInputStream fis = null;
            FileOutputStream fos = null;        File[] firstF = file.listFiles();
            for (int j = 0; j < firstF.length; j++) {
                File[] subF = firstF[j].listFiles();
                for (int i = 0; i < subF.length; i++) {
                    String fileName = subF[i].getName();
                    fis = new FileInputStream(subF[i]);
                    fos = new FileOutputStream("D:\\" + fileName);
                    int byt;
                    while ((byt = fis.read()) != -1) {
                        fos.write(byt);
                    }            }
            }
            fis.close();
            fos.close();
        }自己研究一下吧,挺容易的
      

  4.   

    就这样的“很容易”的问题,有几个人能真正写得很好?第一是并行迭代的问题。
    如果源文件在不同的DISK上,一个线程中循环读和多线程并行读,哪个性能高?
    第二个是IO操作效率问题。
    上面的代码读写一次要经过五次上下文切l换,三次用户/内核模式数据复制。
    而如果系统支持DMA通道,可以直接在内核模式下将源数据COPY到目标。
    FileChannel的transferTo和transferFrom可以使用。如果文件比较大,Buffer的块操作肯定比byte操作要快。