import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;

public class DocCountSize {
     public static void main(String[] args) {
        
            List<Bean> data = new ArrayList<Bean>();
            //输入一个路径
            String path="C:\\\\Program Files\\\\Java\\\\jre1.8.0_131\\\\bin\\\\dtplugin";
            getFile(data, path);    
            save(data);
            System.out.println("统计完毕");
        }
    
         
        private static void save(List<Bean> data) {
            OutputStream os = null;
            OutputStreamWriter osw = null;
            try {
                //将统计的数据大小统计为文件     路径
                os = new FileOutputStream(new File("C:/d1.csv"));
                osw = new OutputStreamWriter(os, "GBK");
                for (Bean bean : data) {
                    osw.write(bean + "\r\n");
                }
                osw.flush();
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (os != null) {
                    try {
                        os.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
                if (osw != null) {
                    try {
                        osw.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    
        private static void getFile(List<Bean> data, String path) {
    
            File f = new File(path);
            File[] fs = f.listFiles();
      
            if (fs == null) {
                return;
            }
            for (File file : fs) {
                //将统计的文件的字节数   转换为k  方便计算大小
                if (file.isFile()) {
                    data.add(new Bean(file.getParentFile().getAbsolutePath(), file.getName(), (int) (getFileSize(file)/1024)));
                } else {
                    getFile(data, file.getAbsolutePath());
                }
            }
        }
    
        private static int getFileSize(File f) {
            InputStream fis = null;
            try {
                fis = new FileInputStream(f);
                int docsize=fis.available();
                return docsize;
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                if (fis != null) {
                    try {
                        fis.close();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
            return 0;
        }
    }
    
    class Bean {
        private String filePath;
        private String fileName;
        private int size;
    
        public Bean(String filePath, String fileName, int size) {
            this.filePath = filePath;
            this.fileName = fileName;
            this.size = size;
        }
    
        public String getFilePath() {
            return filePath;
        }
    
        public void setFilePath(String filePath) {
            this.filePath = filePath;
        }
    
        public String getFileName() {
            return fileName;
        }
    
        public void setFileName(String fileName) {
            this.fileName = fileName;
        }
    
        public int getSize() {
            return size;
        }
    
        public void setSize(int size) {
            this.size = size;
        }
    
//        public String toString() {
//            return filePath + "," + fileName + "," + size + "K";
//        }
    
        public String toString() {
            return filePath + "," + fileName + "," + size;
        }

}

Java 读取某文件下的所有文件的大小 并将所有文件的文件名,以及对应大小输出在xls表格里的更多相关文章

  1. java读取resource目录下的配置文件

    java读取resource目录下的配置文件 1:配置resource目录 下的文件 host: 127.0.0.1 port: 9300 2:读取    / 代表resource目录 InputSt ...

  2. java 读取固定目录下的文件(和上篇差点儿相同)

    package gao.org; import java.io.FileNotFoundException; import java.io.IOException; import java.io.Fi ...

  3. Java 读取指定目录下的文件名和目录名

    需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { ...

  4. Java读取WEB-INF目录下的properties配置文件

    如何在Java代码中读取WEB-INF目录下的properties配置文件,下文给出了一个解决方案. 我们习惯将一些配置信息写在配置文件中,比如将数据库的配置信息URL.User和Password写在 ...

  5. Java 读取某个目录下所有文件、文件夹

    /** * @Author: * @Description:获取某个目录下所有直接下级文件,不包括目录下的子目录的下的文件,所以不用递归获取 * @Date: */ public static Lis ...

  6. java读取项目路径下的中文文件乱码问题

    出现乱码错误: 处理方案: 对文件路径中存在中文的,都要进行URLDecoder.decode(path,"UTF-8")编码转换 wordContent = URLEncoder ...

  7. java读取指定package下的所有class

     JAVA如何扫描一个包下面的所有类,并加载到内存中去? spring中有一个<context:component-scan base-package="com.controller& ...

  8. Java读取Maven工程下的配置文件,工具类

    Java开发中,经常需要在maven工程中读取src/main/resources下的配置文件: 思路如下: Class.getClassLoader() 返回类加载器ClassLoader,进而可以 ...

  9. Java读取maven目录下的*.properties配置文件

    public class ReadProperties{ private static String proFileName = "/config/MQSubjectId.propertie ...

随机推荐

  1. angularjs $$phase

    https://segmentfault.com/q/1010000000738004/a-1020000000738812 $$phase 是 angluar 内部使用的状态标志位,用于标识当前是否 ...

  2. 阿里云物联网平台体验(树莓派+Nodejs篇)

    我们在<阿里云物联网平台体验(树莓派+python篇)>里,写了通过Python语言开发云到端的物联网程序,本篇文章将介绍通过nodejs来实现类似功能. 同样在阿里云官方文档里已经有了一 ...

  3. SQL Server 性能优化实战系列(二)

    SQL Server datetime数据类型设计.优化误区 一.场景 在SQL Server 2005中,有一个表TestDatetime,其中Dates这个字段的数据类型是datetime,如果你 ...

  4. SQL SERVER 批量生成编号

    开始: 在testing中,为了模拟orders,有个要求给数据库dba,如何通过后台数据库脚本快速批量生成orders. 分析 站在数据库角度,批量生成orders,也就是批量生成表中的行数据. s ...

  5. 戳破ZigBee技术智能家居的谎言!

    戳破ZigBee技术智能家居的谎言 一.ZigBee介绍 简介 在蓝牙技术的使用过程中,人们发现蓝牙技术尽管有许多优点,但仍存在许多缺陷.对工业,家庭自动化控制和遥测遥控领域而言,蓝牙技术显得太复杂, ...

  6. Js 跳出两级循环的方法

    做过一个复杂的验证方法,需要两层each验证之后反正报错的信息.因为双重循环的问题,纠结了很久. /** * 验证input 的值 是否输入 flg:验证成功 false:验证失败 */ functi ...

  7. 前后端分离springmvc和RESTful理解

    1. 理解MVC MVC是一种经典的设计模式,全名为Model-View-Controller,即模型-视图-控制器. 其中,模型是用于封装数据的载体,例如,在Java中一般通过一个简单的POJO(P ...

  8. (转) 开运算opening_circle和闭运算closing_circle的异同

    从去除毛刺的策略看开运算opening_circle和闭运算closing_circle的异同 例一:毛刺在往外凸的面上 策略1:分割出黑色部分,然后通过开运算去掉毛刺,再通过原黑色部分区域减去开运算 ...

  9. Canvas组件:画布,可以实现动画操作。

    Module  10 Canvas组件:画布,可以实现动画操作. TextArea:文本域. 在单行文本域中回车会激发ActionEvent. 用CheckBoxGroup实现单选框功能. Java中 ...

  10. JDK中Unsafe类详解

    Java中Unsafe类详解 在openjdk8下看Unsafe源码 浅析Java中的原子操作 Java并发编程之LockSupport http://hg.openjdk.java.net/jdk7 ...