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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test_2 {
        public static void main(String[] args) {
                copyDir(new File("c:\\demo"), new File("d:"));
        }
       
        /*
         * 定义方法,实现文件夹复制
         */
         public static void copyDir(File source,File target){
                 //获取数据源文件夹名字
                 String sourceDirName = source.getName();
                //根据数据源文件夹名字,在数据目的,创建出同样文件夹
                 File targetDir = new File(target,sourceDirName);
                //调用方法mkdirs创建文件夹
                 targetDir.mkdirs();
                 //获取数据源目录下的全部文件
                 File[] files = source.listFiles();
                 for(File f : files){
                         //获取数据源文件名
                         String sourceFileName = f.getName();
                        //将数据目的文件夹和文件名组成File 对象
                         File targetDirFile = new File(targetDir,sourceFileName);
                         //调用字节流复制文件方法,传递数据源和数据目的
                         copyFile(f,targetDirFile);
                 }
                 //调用修改文件名的方法
                 reanme(targetDir);
         }
         /*
          * 定义方法,实现复制后数据目的文件夹,所有文件
          */
         public static void reanme(File targetDir){
                 //对传递过来的文件夹进行遍历,所有的文件
                 File[] files = targetDir.listFiles();
                 for(File f : files){
                         //直接获取文件名
                         String fileName = f.getName();
                         //反向搜索.出现的索引
                         int index = fileName.lastIndexOf('.');
                         //对文件,进行substring截取
                         fileName = fileName.substring(0,index)+".java";
                         //数据目的路径d:\\demo, 截取后的文件名封装File对象
                         File reNameFile = new File(targetDir,fileName);
                         //数据源File对象,调用方法renameTo
                         f.renameTo(reNameFile);
                 }
         }
         
         
         /*
          * 定义方法,实现字节流文件复制,字节数组缓冲
          */
         public static void copyFile(File souce,File target){
                 FileInputStream fis = null;
                 FileOutputStream fos = null;
                 try{
                         fis = new FileInputStream(souce);
                         fos = new FileOutputStream(target);
                         byte[] bytes = new byte[1024];
                         int len = 0 ;
                         while((len = fis.read(bytes))!=-1){
                                 fos.write(bytes, 0, len);
                         }
                 }catch(IOException ex){
                         throw new RuntimeException("文件复制失败");
                 }finally{
                         try {
                                        if (fos != null)
                                                fos.close();
                                } catch (IOException ex) {
                                        throw new RuntimeException("关闭资源失败");
                                } finally {
                                        try {
                                                if (fis != null)
                                                        fis.close();
                                        } catch (IOException ex) {
                                                throw new RuntimeException("关闭资源失败");
                                        }
                                }
                 }
         }
}







0 个回复

您需要登录后才可以回帖 登录 | 加入黑马