代码行数统计程序简要分析

在学校的时候就想写一个代码行数统计的程序,可由于各种原因一直没有实现。年前在北京参加了一个培训,培训过程中,自己抽空完成了一个简单的代码行数统计程序。近期接触一个新项目的时候本想看看该项目的代码总数,可一时找不到原来的那个代码行数统计程序了。问了两个朋友,他们也没有。于是我又萌生了重写该程序的念头。

前几天,我抽出一些空闲的时间,完成了该程序的核心功能。我又在接下来的几天里抽空对代码进行了完善。

想想该程序,难点应该主要有三个。

其一:如何统计一个文件的代码行数

其二:如何过滤指定类型的文件

其三:如何遍历文件夹

针对这三个难点,我用了下面的方法来解决它们。

一、        定义一个变量n用于记录文件的代码行数,初始值为0 。构造一个BufferedReader对象用于按行读取文件。读取文件的过程中,改变n的值。这样当读到文件尾部的时候,该文件的总行数也就出来了。核心代码如下:

int n = 0;
BufferedReader br = new BufferedReader(new FileReader(fileName));
while ((br.readLine()) != null)
{
	n++;
}
二、        定义一个SimpleFileFilter类并实现FileFilter接口,重写该接口的方法public boolean accept(File pathname) 。在该类中定义一些常量,用于表示一些常用文件的类型。然后定义一个List<String>,名字为suffixes,用于保存需要过滤的文件类型。核心代码如下:
for (String suffix : suffixes)
{
	if (pathname.getName().toLowerCase().endsWith(suffix))
	{
		return true;
	}
}
return false;
三、        利用递归的思想来解决遍历文件夹的问题。核心代码如下:
private void getTotalLineNumberOfPath(File f)
{
	File[] files = f.listFiles();
	for (int i = 0; i < files.length; i++)
	{
		if (files[i].isFile())
		{
			//统计该文件的代码行数,请参考难点一
		}else
		{
			getTotalLineNumberOfPath(files[i]);
		}
	}
}
写此文主要目的有两个:一、备忘;二、分享心得。如有不妥之处,欢迎拍砖!

重要提示:我把程序源码上传到个人资源里面了,如有需要请点击(代码行数统计程序http://download.csdn.net/detail/binbinxyz/4078590下载参考!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值