Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)
要求:统计一个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关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)的更多相关文章
- 用django统计代码行数+注释行数
实现统计代码行数: 1.首先在url.py中配置 from django.conf.urls import url from django.contrib import admin from app0 ...
- Java的条件判断
以下内容引用自http://wiki.jikexueyuan.com/project/java/decision-making.html: 在 Java中有两种类型的条件判断语句,它们分别是: if语 ...
- php如何实现统计一个数字在排序数组中出现的次数(代码)
统计一个数字在排序数组中出现的次数. 博客 www.51msk.cn 1.有序的数组查找,使用二分法2.二分法查找第一次出现的位置,二分法查找最后一次出现的位置,end - start +1 left ...
- IDEA中项目src目录下无法创建java文件的问题
出现的问题如下,是因为该目录不是源码目录 解决办法 设置成功
- Qt编写自定义控件69-代码行数统计
一.前言 代码行数统计主要用来统计项目中的所有文件的代码行数,其中包括空行.注释行.代码行,可以指定过滤拓展名,比如只想统计.cpp的文件,也可以指定文件或者指定目录进行统计.写完这个工具第一件事情就 ...
- 统计C/C++代码行数
近日在写一个统计项目中C/C++文件(后缀名:C/CPP/CC/H/HPP文件)代码行数的小程序.给定包含C/C++代码的目录,统计目录里所有C/C++文件的总代码行数.有效代码行数.注释行数.空白行 ...
- Atitit.Gui按钮与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.
Atitit.Gui按钮与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数. 1. Kpi::: 代码行数(注释行数,空白的行数), 方法数,class数 1 2. 过滤器 ...
- Intellij idea利用Statistic插件统计项目代码行数
1 . 插件介绍统计项目中各个文件的数量,大小,行数,平均等信息根据扩展名自定义统计详细行数信息 , 包括总行数,代码行数,代码行数占比,注释行数,注释行数占比,空白行数,空白行数占比自定义选择多个文 ...
- java语言实现对程序设计语言源文件统计字符数、单词数、行数及其他拓展功。
本次作业Github项目地址:https://github.com/YiChenglong2018/WordCount 一.项目简介 本项目的需求可以概括为:对程序设计语言源文件统计字符数.单词数.行 ...
随机推荐
- Zernike矩之边缘检测(附源码)
这一篇博文将讨论Zernike矩在边缘检测中的应用,关于Zernike矩的基本概念,可以参看<Zernike矩之图像重建(附源码> 源码下载 参考: [4] Ghosal S, Mehro ...
- json2.js 源码解读
这一部分是对Date String Number Boolean扩展toString方法,Date的toString是返回UTC格式的字符串,而后面几个是返回原始值. function f(n) {/ ...
- 生产环境中配置的samba
实验需求: 由于实验室纳新一帮新孩子,搭建samba主要是临时共享一些学习资源的,基本上大家用的都是windows.而且这个服务可以让他们在校园的里的个个角落都可以访问到,所以给挂了学校的公网,不过我 ...
- solrJ的查询->统计【转】
package com.fjsh.SearchJobsFirst; import java.text.SimpleDateFormat; import java.util.Calendar; impo ...
- FFmpegUtil
这几天没事研究音频玩 比如 X配音app的配音功能 录一段 pcm或者wav格式的文件 替换mp4指定位置的音频刚开始卡在 pcm混合以及pcm指定位置插入.思路 一段段的视频进行切割 用到MP4Co ...
- iOS 二维码扫描 通过ZBar ZXing等第三方库
扫描二维码的开源库有很多如 ZBar.ZXing等 ZBar的使用方法: 下载ZBar SDK 地址https://github.com/bmorton/ZBarSDK ZBarSDK是一个开源的SD ...
- Oracle逻辑备份与恢复(Data Pump)
1. 备份的类型 按照备份方式的不同,可以把备份分为两类: 1.1 逻辑备份:指通过逻辑导出对数据进行备份.将数据库中的用户对象导出到一个二进制文件中,逻辑备份使用导入导出工具:EXPDP/IMPDP ...
- Android手机app耗电量测试工具 - Gsam Battery Monitor
这段时间需要测试一个Android手机app的耗电量,在网上找了一个工具,Gsam Battery Monitor,觉得挺好用,和大家分享一下. 安装app后打开,可以看到主界面是这样的 点击一下上图 ...
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'needDao' defined in URL
这个是我修改过后的mapper,是我的mapper中的空间地址写错了呢
- 2015 AlBaath Collegiate Programming Contest(2月14日训练赛)
A (By ggg): 题意:一个人还有x秒到红绿灯,这个红绿灯有g秒绿灯,y秒黄 灯,r秒红灯,问你到红绿灯的时候是什么灯.值得注意的是绿 灯变黄灯时,第g秒是黄灯了. B (By Anxdada) ...