您的位置:首页 > 编程语言 > Java开发

将某盘的java文件复制到目标文件的方法。

2012-06-29 18:20 225 查看
import java.io.*;

import java.util.*;

class rr {

         public static void main(String[] args) throws IOException{

                

                 File file = new File("D:\\JDK6.0\\java201206");

                 List<String>  data = new ArrayList<String>();

                 data=showDir(file,data); 

                 fileCopy("E:\\copy",data);        

                

        }

         

         public static List<String>  showDir(File f,List<String> data)throws IOException{

                 

                 File[] fi =f.listFiles();

                 for(int i=0;i<fi.length;i++){

                                          if(fi[i].isDirectory())

                                                        showDir(fi[i],data);                

                                         else{  

                                              if(fi[i].getAbsolutePath().endsWith(".java"))

                                                           data.add(fi[i].getAbsolutePath());//这里用路径,用Name就可源文件搭不上关系了

                                          }         

                  

                 }

                 return data;

         }

                        

                public static void fileCopy(String index,List<String> list)throws IOException {                

                        File fileNext=new File(index);

                        if(!fileNext.exists())

                                fileNext.mkdir();

                        BufferedReader br=null;

                        BufferedWriter bw=null;

                        

                        for(String fi:list){

                                File file=new File(fi);

                                if(file.isDirectory())

                                        break;

                                bw=new BufferedWriter(new FileWriter(fileNext+"\\\\"+file.getName()));

                                br=new BufferedReader(new FileReader(fi));;

                                String s=null;

                                while((s=br.readLine())!=null){        

                                        

                                        bw.write(s);

                                        bw.newLine();

                                        bw.flush();

                                }

                                

                        }

                        bw.close();

                        br.close();

                }

        

       

}

-------------------------------------------------------------------------------------------------------------------------------------

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

public class CopyFolder

{

        public static void main(String[] args)

        {

                //只要不是错误目录就行,文件夹结尾加不加

                //斜杠都行,没有区别

                Copy("C:/Program Files/office2007", "D:/");

        }

        

        public static void Copy(String srcPath, String desPath)

        {

                File srcFile = new File(srcPath);

                File desFile = new File(desPath);

                if(srcFile.isDirectory())

                {

                        //如果是文件夹的话,路径需要增加一个斜杠,

                        //用File.getpath可以避免输入的路径有斜杠

                        //和没有斜杠导致的一些问题

                        srcPath = srcFile.getPath()+File.separator;

                        desPath = desFile.getPath()+File.separator;

                        

                        System.out.println(srcPath + " -> " + desPath);

                        

                        //遍历整个文件夹下的所有文件和子文件,

                        //并通过递归调用自己实现所有文件的复制

                        String[] fileList = srcFile.list();

                        for (String fileName : fileList)

            {

                                Copy(srcPath+fileName, desPath+fileName);

                        }

                }

                //如果给定的源路径是文件

                else if(srcFile.isFile())

                {

                        System.out.println(srcPath + " -> " + desPath);

                        CopyFile(srcPath, desPath);

                }

                //如果源路径不合法

                else

                {

                        throw new IllegalArgumentException("源文件(夹)不存在");

                }

        }

        

        public static void CopyFile(String srcPath, String desPath)

        {

                try

        {

                        File srcFile = new File(srcPath);

                        File desFile = new File(desPath);

                        

                        //仅当源文件为文件时才复制,目录无法创建流

                        //会抛出异常

                        

                        if(srcFile.isFile())

                        {

                           
4000
    desFile.getParentFile().mkdirs();

                                if(!desFile.exists())  //如果不存在就创建一个新文件

                                        desFile.createNewFile();

                                //创建文件以及该路径里不存在的目录

                                FileInputStream fis = null;

                                FileOutputStream fos = null;

                                try {

                                        fis = new FileInputStream(srcFile);

                                        fos = new FileOutputStream(desFile);

                                        byte[] buffer = new byte[1024];   //定义一个 byte数组用于缓冲

                                        int len;

                                        while ((len = fis.read(buffer)) != -1)  //循环判断不是文件的最后就写入

                                                fos.write(buffer, 0, len);

                                } finally {  //关闭流

                                        fis.close();

                                        fos.close();

                                }

                        }

        }

        catch (Exception e)

        {

                e.printStackTrace();

        }

        }

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息