实现统计java程序代码的小工具
来源:互联网 发布:网络发展前景 编辑:程序博客网 时间:2024/05/17 22:24
package test;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.List;public class coderCounter {static int normalLines=0;static int commentLines=0;static int whiteLines=0;public static void main(String[] args) {//假设所有的.java文件都在这个目录下File f=new File("G:\\Eclipse_stardard_Kepler_workspace\\"+ "SynchronizedDemo\\src\\com\\synch");File[] codeFiles=f.listFiles(); for(File child:codeFiles){System.out.println("当前目录文件:"+child+" ");//判断是否以.java结尾if(child.getName().matches(".*\\.java$")){parse(child);}}System.out.println("代码行数:"+normalLines);System.out.println("注释行数:"+commentLines);System.out.println("空白行数:"+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){if(line.matches("^[\\s&&[^\\n]]*$")){//判断空行 以空白且不是换行的开头,以换行的结尾whiteLines++;}else if(line.startsWith("/*")&&!line.endsWith("/*")){commentLines++;comment=true;}else if(line.startsWith("/*")&&line.endsWith("/*")){commentLines++;}else if(comment) {commentLines++;if(line.endsWith("/*"))comment=false;}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();}}}}}
输出结果:
当前目录文件:G:\Eclipse_stardard_Kepler_workspace\SynchronizedDemo\src\com\synch\SynchronizedDemo.java
当前目录文件:G:\Eclipse_stardard_Kepler_workspace\SynchronizedDemo\src\com\synch\VolatileDemo.java
代码行数:86
注释行数:10
空白行数:11
0 0
- 实现统计java程序代码的小工具
- UNITY 用于打点统计的小工具
- java实现统计程序代码量
- java--自己的小工具
- [小工具]代码统计小工具编写
- JS实现的文章字符串中某个字符总个数统计在线小工具实例
- 利用java小工具-----统计项目代码量
- VBS实现的日程提醒小工具
- Python 实现的关键词查找小工具
- 统计单词个数小工具
- 自己使用java做的小工具
- JAVA的一个String连接小工具
- 检查java代码的几个小工具
- 计算java 代码量的小工具
- JVM JAVA的自带小工具
- Java IO流的一个小工具
- C++写得统计线程利用率的小工具
- 统计每秒工单产生的小工具
- Objective-C,类簇详解Foundation框架中的类簇
- Android 单击事件的几种写法
- 自己在家怎样做服务器?
- xhr和跨域问题
- Spring 笔记
- 实现统计java程序代码的小工具
- 员工信息管理表
- HDU 1076(第n个闰年)
- hdu5029 Relief grain 点权树链剖分,线段树
- HDU 1201(18岁生日天数)
- 在Eclipse或者ADT中使用ButterKnifeZelezny,Android组件初始化从此变得简单易懂!!!!,androideclipseadt 一、起因 想必使用And
- 【网络】(二)流协议粘包问题
- JVM监测工具和实践
- HDU 3368(翻转棋)