六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 34|回复: 0

代码统计小程序

[复制链接]

升级  91.33%

55

主题

55

主题

55

主题

秀才

Rank: 2

积分
187
 楼主| 发表于 2013-2-4 22:15:18 | 显示全部楼层 |阅读模式
import java.io.*;class CodeCounter {private static long normalLines = 0; //普通行private static long commentLines = 0; //注释行private static long whiteLines = 0;  //空白行private static long totalLines = 0; //总行数public CodeCounter(String s) {File f = new File(s);tree(f);}public void tree(File f) {System.out.println("Path   :   " + f.getPath());File[] childs = f.listFiles();if(childs == null){    return;}for(int i = 0; i < childs.length; i++) {if(childs[i].isDirectory()) {//if(childs[i].getName().equals("System Volume Information")) {//continue;//}else {tree(childs[i]);//}}else if(childs[i].getName().matches(".*\\.java$")) {parse(childs[i]);}}}public 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("^[\\s&&[^\\n]]*$")) {whiteLines ++;}else if(line.startsWith("/*") && !line.endsWith("*/")) {commentLines ++;comment = true;}else if(true == comment) {commentLines ++;if(line.endsWith("*/")) {comment = false;}}else if(line.startsWith("//")) {commentLines ++;}else {normalLines ++;}}} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {if(br != null) {try {br.close();br = null;} catch (IOException e) {e.printStackTrace();}}}}public void p() {totalLines = normalLines + commentLines + whiteLines;System.out.println("normalLines: " + normalLines);System.out.println("commentLines: " + commentLines);System.out.println("whiteLines: " + whiteLines);System.out.println("totalLines: " + totalLines);}}public class TestCodeCounter {public static void main(String[] args) {CodeCounter c = new CodeCounter("D:\\");c.p();}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表