源代码行数统计器

我的设计思路:

      两个按钮:一个选择目录;一个统计行数;
      一个面板:输出内容用,使用f.list()列出文件夹下全部文件,然后一个一个地统计行数,最后总的统计一下。

 

I code:

   窗口类就省略了…… 

 

   1、文件集合类的

  

public class IList {
	
	public static int fileCount = 0; 
	public static int sumCount = 0;  
	
	public static void sumLines(String s, JTextArea jta){
		int sum = 0;
		File f = new File(s);
		if (f.isDirectory()) {
			//此时IFiles将是一个数组,形如{"1.java","2.java","3.java"}之类
			String[] iFiles = f.list(new IFilter());
			if (iFiles.length != 0) {
				//System.out.println("数组长度即文件数量为:" + iFiles.length);
				fileCount += iFiles.length;//文件的数量和
				
				jta.append("统计 " + f.getAbsolutePath() + "\\*.java\n\n");
				for (int i = 0; i < iFiles.length; i++) {
					String str = iFiles[i];//文件名
					iFiles[i] = s + "\\" + iFiles[i];//全路径名 
					int count = IFileCountLine.countLine(iFiles[i]);
					jta.append(str + "               " + count + " 行\n");
					sum += count;
				}
				
				sumCount += sum;//代码的行数和
				jta.append("\n小计:共 " + iFiles.length + " 个Java文件               " + sum + " 行");
				jta.append("\n==================================================================\n");
				
			}
			
			File[] iFiles2 = f.listFiles();
			for (int i = 0; i < iFiles2.length; i++) {
				sumLines(iFiles2[i].getAbsolutePath(), jta);
			}
		}
	}
	
}

  2、Filter过滤器继承FilenameFilter并实现其方法即可。

  3、统计算法

 

                FileReader fr = new FileReader(f);
                BufferedReader br = new BufferedReader(fr);
	String s = br.readLine();

	while (s != null) {
		count++;
		s = br.readLine();
	}

 

   效果如图:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值