java判断一个文件有多少行_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;

}

}

截图:

0a23dad2755021c1d4e74957f047ba14.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值