要求:统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)

分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数。使用字符缓冲流读取文件,首先判断是否是块注释开头,接着判断是否是块注释结尾,再判断是否是单行注释或者空白行,若都不是则是有效代码,统计行数+1。

对于文件夹路径,采用递归的方法判断子条目是文件还是文件夹,是文件就调用静态统计方法。源代码:

public class CalculateRow {

public static void main(String[] args) {

/* File file = new File("D:\\web\\zuoye\\src\\test\\CalculateRow.java") ;

calculaterow(file) ;*/

File newfile = new File("D:\\web\\zuoye\\src") ;

calculateFile(newfile) ;

File[] files = newfile.listFiles() ;

/* for(File f: files){

System.out.println(f);

}*/

/* int sum = 0 ;

for (int i = 0; i < files.length; i++) {

if(files[i].isDirectory()){

File[] filesi = files[i].listFiles() ;

for (int j = 0; j < filesi.length; j++) {

int num = calculaterow(filesi[j]);

sum+=num ;

}

}else{

int num = calculaterow(files[i]);

sum+= num ;

}

}

System.out.println(newfile+"文件夹下的文件的代码行数总共有:"+sum);*/

}

public static void calculateFile(File ff){

int sum =0 ;

if(ff.isDirectory()){

File[] files = ff.listFiles() ;

for(File f1: files){

if(f1.isDirectory()){

calculateFile(f1) ;

}else{

int num =calculaterow(f1) ;

sum +=num ;

}

}

System.out.println(ff+"文件夹下的所有文件的代码行数总共:"+sum);

}else if(ff.isFile()) {

int num = calculaterow(ff) ;

sum +=num ;

System.out.println(ff+"文件下的所有文件的 代码行数总共:"+sum);

}else{

System.err.println("输入的文件地址格式不对");

}

}

public static int calculaterow(File f){

int num= 0 ;

if(f.isFile()){

try {

BufferedReader br = new BufferedReader(new FileReader(f)) ;

String str ;

boolean flag = false ;

while((str=br.readLine())!=null){

String newstr = str.trim() ;

if(newstr.startsWith("/*")){

flag =true ;

}else if (newstr.endsWith("*/")){

flag = false ;

}

else if(newstr.startsWith("//")||newstr.length()==0){

num+=0 ;

}else if(!flag){

num+=1 ;

}

}

} catch (Exception e) {

e.printStackTrace();

}

}else {

System.out.println("不是文件!");

}

System.out.println(f+"文件的代码行数是:"+num);

return num;

}

}

截图:

java判断一个文件有多少行_Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)...相关推荐

  1. Python编程 统计Java源文件代码行数,注释行数,空白行数

    每次学习新的语言,就想重新实现一遍做过的课设=,= 这里实现的是"综合性实验 Java源代码分析程序"的第三部分 第二部分见:[Python编程]统计目录下Java源文件的关键字出 ...

  2. .net一个函数要用另一个函数的值_Mysql:条件判断函数-CASE WHEN、IF、IFNULL详解

    前言 在众多SQL中,统计型SQL绝对是让人头疼的一类,之所以如此,是因为这种SQL中必然有大量的判读对比.而条件判断函数就是应对这类需求的利器.本文重点总结CASE WHEN.IF.IFNULL三种 ...

  3. python判断语句入门教程_Python中的条件判断语句基础学习教程

    if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理另外一块语句(称为 else-块 ). else 从句是可选的. 使用if语句: ? 输出: ? 在这 ...

  4. python 条件语句判断连续三个数,Python_3_流程控制语句:条件判断语句(if语句),循环语句,嵌套...

    第三章 流程控制语句 简介 Python代码在执行时是按照自上向下顺序执行的. 通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次 流程控制语句分成两大类:条件判断语句,循环语句 ...

  5. python for循环连续输入五个成绩判断等级_Python 入门(五)条件判断和循环

    有的时候,一个 if ... else ... 还不够用.比如,根据年龄的划分: 条件1:18岁或以上:adult 条件2:6岁或以上:teenager 条件3:6岁以下:kid 我们可以用一个 if ...

  6. python循环数组判断,python的数据类型、数组、条件判断、循环的基础知识

    一.数据类型 最常见的数据类型有:整型(int),浮点型(float),字符串(strs).例如: #整型 a=8   #浮点型 b=8.0  #字符串 c='hello world'. 数据类型的转 ...

  7. mysql 查询后根据值的不同进行判断与修改,SQL中的条件判断语句(case when zhen)用法

    需求: mysql 查询后根据值的不同进行判断与修改 语法结构: SQL中的条件判断语句(case when zhen)用法 SELECT A.品号,属性,        CASE           ...

  8. c语言常用条件判断,C语言菜鸟基础教程之条件判断

    (一)if...else 先动手编写一个程序 #include int main() { int x = -1; if(x > 0) { printf("x is a positive ...

  9. python基本判断语句_python两种简洁的条件判断语句写法

    了Python返回真假值(True or False)小技巧,本文探讨的是最简洁的条件判断语句写法,本文给出了两种简洁写法,需要的朋友可以参考下 如下一段代码:def isLen(strString) ...

最新文章

  1. python中mid_使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)...
  2. 大竹中学2021高考成绩查询,2021年大竹中学升学率高不高?
  3. Part1_3 python字符串,列表,元组,字典
  4. Mysql清理binlog日志
  5. PhpStorm快捷键
  6. C# 温故而知新:Stream篇(—)
  7. How is S4 Material extened controller loaded
  8. 时间 '2018-08-06T10:00:00.000Z' 格式转化为本地时间(转)
  9. 【两种方式】用python和ENVI画出高光谱遥感影像的3D立体图
  10. 考上一级建造师很牛吗?让我从一个屌丝技术员到项目经理
  11. 软件架构师的12项修炼[4]—个人技能修炼(2)—激情
  12. win10桌面计算机快捷没了,大神帮您win10系统桌面计算机快捷图标不见了的技巧...
  13. 透明贴图原理--浅显易懂
  14. 港澳台、大陆身份证正则表达式
  15. USB1.0 2.0区别
  16. java编程基础笔记_Java编程基础阶段笔记 day01 Java语言概述
  17. 第二阶段-面向对象(四)
  18. WF2011 Chips Challenge
  19. 【鸿蒙 HarmonyOS】HarmonyOS 开发环境搭建 ( 下载 | 安装 | 启动 | 支持的设备与开发语言 )
  20. Sixth week blog3

热门文章

  1. OTT 端性能优化建设之 Weex 实践之路
  2. Java 反射机制你还不会?那怎么看 Spring 源码?
  3. 5G 时代,优酷推出的帧享究竟是什么?
  4. 惊,Java 字符串拼接竟然有这么多玩法!| CSDN 原力计划
  5. 你有进一步深入理解二分查找吗?
  6. 4种最常问的编码算法面试问题
  7. 谷歌、IBM 们的“量子争霸”迷局
  8. @广州开发者,华为送来一份说明书——助你轻松应对开发难题
  9. 真正勇猛的程序员,敢于让鲁迅崩溃!
  10. 一键免费自动 AI 抠图,效果连 PS 大哥也点赞! | 程序员硬核评测