博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeCounter
阅读量:6278 次
发布时间:2019-06-22

本文共 1473 字,大约阅读时间需要 4 分钟。

import java.io.BufferedReader; 

import java.io.File; 

import java.io.FileNotFoundException; 

import java.io.FileReader; 

import java.io.IOException; 


public class CodeCounter { 


static long normalLines = 0; 

static long commentLines = 0; 

static long whiteLines = 0; 


public static void main(String[] args) { 

File f = new File("D:\\share\\JavaProjects\\TankWar1.9.11\\src"); 

File[] codeFiles = f.listFiles(); 

for(File child : codeFiles){ 

if(child.getName().matches(".*\\.java$")) { 

parse(child); 




System.out.println("normalLines:" + normalLines); 

System.out.println("commentLines:" + commentLines); 

System.out.println("whiteLines:" + whiteLines); 




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("^[\\s&&[^\\n]]*$")) { 

whiteLines ++; 

} else if (line.startsWith("/*") && !line.endsWith("*/")) { 

commentLines ++; 

comment = true;

} else if (line.startsWith("/*") && line.endsWith("*/")) { 

commentLines ++; 

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






转载地址:http://kjbva.baihongyu.com/

你可能感兴趣的文章
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
爆牙齿的Web标准面试考题II(iPhone SMS/iChat UI的Web标准实现)
查看>>
XMOVE3.0手持终端——软件介绍(二):在2KB内存的单片机上实现的彩屏GUI控件库
查看>>
MVC系列——MVC源码学习:打造自己的MVC框架(三:自定义路由规则)
查看>>
找小于N 的所有质数
查看>>
Windows下的Jupyter Notebook 的介绍(写给新手)(图文详解)
查看>>
iOS开发-CocoaPods实战
查看>>
JS组件系列——Bootstrap 树控件使用经验分享
查看>>
HTML-color:rgb()-颜色渐进
查看>>
数据库实例: STOREBOOK > 表空间 > 编辑 表空间: UNDOTBS1
查看>>
Mcad学习笔记之异步编程(AsyncCallback委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结)...
查看>>
Javascript防冒泡事件与Event对象
查看>>
managed domain与unmanaged domain
查看>>
《设计模式解析(第2版•修订版)》目录—导读
查看>>
Java核心技术卷I基础知识3.5.3 强制类型转换
查看>>
可与Mirai比肩的恶意程序Hajime,竟是为了保护IoT设备?
查看>>
《Spring Data 官方文档》6. Cassandra 存储库
查看>>
聊聊并发(十)生产者消费者模式
查看>>
R语言数据挖掘2.2.4.2 FP-growth算法
查看>>