统计有效、空行、注解代码行数

来源:互联网 发布:移动网络打不开黄页 编辑:程序博客网 时间:2024/05/22 17:12
package com.fr24.dai.regEx;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;public class CountCode {    static long normalLines = 0l;    static long commmentLines = 0l;    static long whiteLines = 0l;    public static void main(String[] args) {        // String fileName = ReadPropertiesUtils.getPropertiesValueByKey("/resource/fileName.properties", "fileName");        String fileName = "F:\\Desktop\\code";        File f = new File(fileName);        if (f.isDirectory()) {            countCode(f);        }        p("normalLines:" + normalLines);        p("commentLines:" + commmentLines);        p("whiteLines:" + whiteLines);    }    private static void countCode(File f) {        File[] childs = f.listFiles();        for (File file : childs) {            if (file.isDirectory()) {                countCode(file);            }            if (file.getName().matches(".*\\.java$")) {                parse(file);            }        }    }    private static void parse(File f) {        BufferedReader br = null;        boolean comment = false;        try {            br = new BufferedReader(new FileReader(f));            String line = "";            while ((line = br.readLine()) != null) {                line = line.trim();                if (line.matches("//.*")) {                    ++commmentLines;                } else if (line.matches("^/\\*.*\\*/$")) {                    ++commmentLines;                } else if (comment) {                    ++commmentLines;                    if (line.matches(".*\\*/$")) {                        comment = false;                    }                } else if (line.matches("^/\\*.*[^\\*/$]")) {                    ++commmentLines;                    comment = true;                } else if (!comment &&line.matches("[\\s&&[^\\n]]*")) {                    ++whiteLines;                } else {                    ++normalLines;                }            }        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }    public static void p(Object o) {        System.out.println(o);    }}

0 0
原创粉丝点击