统计代码的行数
2016-04-15 19:49
232 查看
<span style="font-size:14px;">package cn.itcast.test; 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 normaLines = 0;//正常的行数 static long commentLines = 0;//注释行数 static long whiteLines = 0;//空白行 public static void main(String[] args) { File f = new File("E:\\SQF\\BaiduYunDownload\\尚学堂\\马士兵Java\\尚学堂科技_马士兵_JAVASE_坦克大战网络版\\尚学堂科技_马士兵_JAVA_坦克大战网络版视频教程\\source\\TankWar1.9.11\\src"); File[] codeFiles = f.listFiles();//获取文件呢 //.java结尾的文件检索 for(File code:codeFiles){ if(code.getName().matches(".*\\.java$")){//后缀.java文件 parse(code); } } System.out.println("normaLines:" +normaLines ); 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();//注意去空格,不要在36行去空格,空行时候 //readLine在读取数据的时候,会把每一行的\n去掉 if(line.matches("[\\s&&[^\\n]]*$")){//空行的处理 在不用readLine处理空行-----> [\\s&&[^\\n]]*\n$ whiteLines++; }else if(line.startsWith("/*")&&line.endsWith("*/")){ //当多行注释在一行的时候 commentLines++; }else if(line.startsWith("/*")&&!line.endsWith("*/")){//当多行注释不再一行的时候 commentLines++; comment = true; }else if(true == comment){ //多行注释的中间的进行统计 commentLines++; if(line.startsWith("*/")){//当统计到多行注释的最后一行把comment置为false comment = false; } }else if(line.startsWith("//")){ //单行注释 commentLines++; }else{//代码行统计 normaLines++; } } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(br != null){ try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } } } </span>
相关文章推荐
- 《Java程序设计》第七周学习总结
- 4. PHP变量的类型(一)
- wifi智能插座 一键扫描局域网内插座Ip及其它信息 Python源代码API
- 1. Python快速入门
- 一些常用算法的代码(1)
- Java中的抽象和封装
- Java第五次作业
- c++ 编程拾贝(三)
- C#—匿名方法和静态类使用
- 使用notepad++ 让word里面的代码高亮
- java jdk环境变量设置
- LaTeX在MATLAB上的使用
- 用C#创建XML文档和读取并修改XML文档
- PAT1003.我要通过!(20)(简单的c语言风格c++解法)
- 在Eclipse环境下编写ABAP程序
- JavaSE学习小笔记(2)
- c++拷贝构造和编译优化
- JAVA Hibernate工作原理及为什么要用
- c语言中的几种重要的编程语句
- C++中的类模板详细讲述