课程咨询 :13486356750 QQ:1079585464

厦门达内java培训

  • 达内:Java IO 目录文件的复制和删除

    发布:厦门Java培训      来源:PHPERZ      时间:2015-12-04


  •     达内java培训专家讲解Java IO 目录文件的复制与删除,以及目录文件大小数量的统计的方法,代码如下:

    package com.newer.io;

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

    public class Caculator_1 {
     int tfolder = 0;
     int tfiles = 0;

     public static void main(String[] args) {

      Caculator_1 c = new Caculator_1();
      String path = "c:/abc";// 目录文件夹路径
      File f = new File(path);//读取指定路径下的文件
      System.out.println("总大小" + c.getsize(f) + "字节");
      System.out.println("总文件夹数" + c.gettfolder());
      System.out.println("总文件数" + c.gettfiles());
      System.out.println("开始复制");
      c.copy("c:/abc", "c:/abc1");
      System.out.println("复制成功");
      System.out.println("开始删除");
      c.deletes(f);
      System.out.println("删除成功");

     }

     public long getsize(File path) {//<strong> 该方法用于统计文件夹数文件数以及文件大小</strong>
      long filesize = 0;
      File[] files = path.listFiles();
      // for (int i = 0; i < files.length; i++) {
      // if (files[i].isDirectory()) {
      // tfolder++;
      // filesize+=getsize(files[i]);
      // }else{
      // tfiles++;
      // filesize+=files[i].length();
      // }
      // }
      for (File file : files) {// foreach循环与上面循环作用相同
       if (file.isDirectory()) {
        tfolder++;
        filesize += getsize(file);
       } else {
        tfiles++;
        filesize += file.length();// 文件大小字节为单位
       }
      }
      return filesize;// 统计目录大小
     }

     public int gettfolder() {
      return tfolder;

     }

     public int gettfiles() {
      return tfiles;

     }

     public void deletes(File path) {// <strong>删除文件夹及文件的方法</strong>
      File[] files = path.listFiles();
      for (File file : files) {
       if (file.isDirectory()) {
        deletes(file);// 使用递归
        file.delete();
       } else {
        file.delete();
       }
      }
     }
     public void copy(String a, String b) {//<strong>复制文件的方法</strong> 两个String类型参数传入被复制文件路径和目标文件路径
      File src = new File(a);
      File dest = new File(b);
      if (!src.exists()) {// 判断被复制文件夹是否存在
       System.out.println("文件夹不存在");
       return;
      }
      if (src.isFile()) {// 如果是文件
       try {
        // 读出
        FileInputStream in = new FileInputStream(a);
        // 写入
        FileOutputStream out = new FileOutputStream(b);
        // 缓冲区
        byte[] buf = new byte[1024];
        int n;
        while (-1 != (n = in.read(buf))) {
         out.write(buf, 0, n);
        }
        // 关闭流
        in.close();
        out.close();
       } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
       }
      } else if (src.isDirectory()) {// 如果是目录
       if (!dest.exists()) {// 如果没有该文件夹
        dest.mkdir();// 创建文件夹
       }
       String[] filelist = src.list();
       for (int i = 0; i < filelist.length; i++) {
        copy(a + "/" + filelist[i], b + "/" + filelist[i]);
        // 使用递归解决文件夹下还有文件夹的问题
       }
      }
     }
    }


上一篇:达内获得新浪“2015中国品牌影响力教育集团”奖

下一篇:达内:Git的七个使用技巧

最新开班日期  |  更多

Java--大数据周末班

Java--大数据周末班

开班日期:每周一

Java--大数据全日制班

Java--大数据全日制班

开班日期:每周一

Java--零基础周末班

Java--零基础周末班

开班日期:每周一

Java--零基础全日制班

Java--零基础全日制班

开班日期:每周一

  • 地址:厦门软件园二期望海路59号之一401达内科技
  • 课程培训电话:13486356750 QQ:1079585464     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56