代码行数统计

 

 

统计本地磁盘中某个目录下的所有文件数和总行数: 

题目要求:传入如"D:\workspace" 这样的一个目录,

1.依次输出每个文件总行数,空白行数,实际行数

2.如果是目录也输出

3.输出总文件数,总行数,空白行数,实际行数

结果示例:输入:D:\workspace

结果:

D:\workspace

xxxx.java 总共13行 空白行3行 实际行10行

......

......

D:\workspace:总共1342 files, 87822 lines 

 

 

在javaeye上找到的一个练习,怎么提高性能???

 

 

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;

public class SourceCount {

	private static int actCount = 0;
	private static int spaceAllCount = 0;
	private static int fileCount = 0;

	public static void countLine(File file) throws Exception {
		if (file.isFile()) {
			fileCount++;
			System.out.print(file.getName() + ":");
			BufferedReader bf = new BufferedReader(new InputStreamReader(
					new FileInputStream(file)));
			String str;
			int reallyCount = 0;
			int spaceCount = 0;
			while ((str = bf.readLine()) != null) {
				if (str.trim().equals("")) {
					spaceCount++;
				} else
					reallyCount++;
			}
			spaceAllCount = spaceAllCount + spaceCount;
			actCount = actCount + reallyCount;
			System.out.print(reallyCount + " lines" + "空格行数为:" + spaceCount
					+ "总行数:" + (reallyCount + spaceCount));
			System.out.println();
		} else {
			System.out.println(file);

			File[] files = file.listFiles();
			for (int i = 0; i < files.length; i++) {
				countLine(files[i]);
			}
		}
	}

	public static void count(String dir) throws Exception {
		File file = new File(dir);
		countLine(file);
		System.out.println("dir:" + file + " " + fileCount + " files,"
				+ "实际行:"+actCount + "  lines"+ "空白行:"+spaceAllCount+" lines"+" 共"+(spaceAllCount+actCount)+" lines");
	}

	public static void main(String[] args) throws Exception {
		if(args.length()!=0){ String str = args[0]; }else{ String str = String dir = "F:/workspace/javaTest/src"; }
		count(dir);
	}

}

你可能感兴趣的:(java,IO,代码行数统计)