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();
        }
      }
    }

  • 相关阅读:
    Ubuntu 代理及系统信息修改
    名词解释
    第一章 用标准I/O函数将标准输入复制到标准输出 1-3
    Viewpager模仿微信主布局的三种方式 ViewPager,Fragment,ViewPager+FragmentPagerAdapter
    github入门到上传本地项目
    安卓界面篇(一) 自定义一个topbar
    ace布置小作业: 制作一个简单的电话号码归属地查询软件:JSON解析和Volly发送get请求
    android json解析及简单例子
    Volly框架的使用基础版及使用中的一些坑 Ace 网络篇(三)
    Android清单文件详解(三)----应用程序的根节点<application>
  • 原文地址:https://www.cnblogs.com/qianji/p/6648784.html
Copyright © 2011-2022 走看看