linux 统计文件行数_递归方法统计文件夹代码行数

704e7d01e419ebb33490beaa9176d7fa.png

源码如下:


import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class TextCountDir {

	private int count;
	/**
	 * 统计一个java文件的行数
	 * @throws IOException 
	 */
	private void countLine(File sourceFile) throws IOException {
		BufferedReader br =null;
		try {
			br = new BufferedReader(new FileReader(sourceFile));
			while (br.readLine()!=null) {
				count++;
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}finally {
			br.close();
		}
	}
	/**
	 * 统计一个目录下所有java文件的行数
	 * @throws IOException 
	 */
	private void countDir(String sourceDir) throws IOException {
		//检查源目录
		File fSourceDir = new File(sourceDir);
		if (!fSourceDir.exists()||!fSourceDir.isDirectory()) {
			System.out.println("源目录不存在");
			return;
		}
		//遍历目录下的文件或目录
		File[] file =fSourceDir.listFiles();
		for (int i = 0; i < file.length; i++) {
			if (file[i].isFile()) {
				
				if (file[i].getName().toLowerCase().endsWith("java")) {
					//System.out.println(file[i].getName());
					countLine(file[i]);
				}
			}
				//递归统计代码行数
				if (file[i].isDirectory()) {
				//准备统计的文件夹
					String  subSourceDir = sourceDir + File.separator + file[i].getName();
				//统计子目录
					countDir(subSourceDir);
			}
		}
	}
	
	public static void main(String[] args) throws IOException {
		
		TextCountDir tcd = new TextCountDir();
		tcd.countDir("d:eclipse-workspace");
		System.out.println(tcd.count);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值