zoukankan      html  css  js  c++  java
  • IO操作文件的复制与删除

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;

    import org.junit.Test;


    public class Delete {
    /*
    把d:/mywork复制成c:/mywork
    写程序删除目录c:/mywork, delete()?
    递归
    */

    public void deleteDir(File dir){
      //清空目录
      System.out.println("删除目录:" + dir);
      File[] listFiles = dir.listFiles();
      for(int i = 0;i < listFiles.length;i++){
        if(listFiles[i].isFile()){//测试此抽象路径名表示的文件是否是一个标准文件。
          //如果是文件,直接删除
          listFiles[i].delete();  
        }else if(listFiles[i].isDirectory()){//检查此路径是不是目录
          deleteDir(listFiles[i]);
          //因为子目录也是目录, 继续调用删除目录的方法即可
        }
      }
        dir.delete();//只能删除空目录
    }

      @Test
      public void delete(){
        File file = new File("c:/xxxx");//此处填写文件名
        deleteDir(file);
      }

      public void copyDir(File dir1,File dir2) throws IOException{
        System.out.println("复制目录:" + dir1 + "到" + dir2);
        //新建目标目录
        dir2.mkdir();
        //遍历源目录,把其中的内容复制到目标目录中
        File[] listFiles = dir1.listFiles();// 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
        for(int i = 0;i < listFiles.length;i++){
          if(listFiles[i].isFile()){
          //文件复制
            File f1 = listFiles[i];
            File f2 = new File(dir2.getAbsolutePath() + "/" + f1.getName());
            copyFile(f1,f2);
          }else if(listFiles[i].isDirectory()){
            copyDir(listFiles[i],new File(dir2.getAbsolutePath() + "/" + listFiles[i].getName()));
          }
        }
      }

       private void copyFile(File f1,File f2) throws IOException{
         FileInputStream fis = new FileInputStream(f1);
         FileOutputStream fos = new FileOutputStream(f2);
         byte[] buf = new byte[8192];
         int realCount = fis.read(buf);
         while (realCount != -1) {
           fos.write(buf,0,realCount);
           realCount = fis.read(buf);

         }
          fis.close();
          fos.close();
      }

       @Test
      public void copy(){
        File dir1 = new File("路径");
        File dir2 = new File("路径");
        try {
            copyDir(dir1, dir2);
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }

  • 相关阅读:
    tips
    【十大算法实现之KNN】KNN算法实例(含测试数据和源码)
    智力趣题几则
    JAVA知多少
    R语言(入门小练习篇)
    文本分类,数据挖掘和机器学习
    推荐系统的循序进阶读物(从入门到精通)
    【贪心】PAT 1033. To Fill or Not to Fill (25)
    博弈故事一则——海盗分金币问题
    基于WordNet的英文同义词、近义词相似度评估及代码实现
  • 原文地址:https://www.cnblogs.com/qianji/p/6648784.html
Copyright © 2011-2022 走看看