`
悦悦余音
  • 浏览: 640 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

[转]统计项目中代码的行数

    博客分类:
  • Java
阅读更多
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import org.apache.commons.lang.StringUtils;
public class ProjectCountLine {
	private static final String JAVA_FILE_SUF = "java";
	private static final String CSS_FILE_SUF = "css";
	private static final String JS_FILE_SUF = "js";
	private static final String JSP_FILE_SUF = "jsp";
	private static final String HTML_FILE_SUF = "html";
	private static final String PROPERTIES_FILE_SUF= "properties";
	private static final String VM_FILE_SUF = "vm";
	// 项目的跟目录
	private File rootFile = null;
	// 项目的行数
	private long count = 0L;
	
	/**
	 * 入口方法
	 * 
	 * @param path
	 *            项目的根目录路径
	 * @return
	 * @throws IOException
	 * @see [类、类#方法、类#成员]
	 */
	public long service(String path) throws IOException {
		boolean flag = checkPath(path);
		
		if (flag)
			countFilesLine(rootFile);
		
		return count;
	}
	
	/**
	 * 检查文件是否是需要统计的文件类型
	 * 
	 * @param fileName
	 *            文件的名称
	 * @return true:文件为需要统计的文件; false:文件为不需要统计的文件
	 * @see [类、类#方法、类#成员]
	 */
	private boolean isCountFileType(String fileName) {
		if (StringUtils.isBlank(fileName))
			return false;
		
		if (fileName.endsWith(JAVA_FILE_SUF) || fileName.endsWith(CSS_FILE_SUF) || fileName.endsWith(JS_FILE_SUF) || fileName.endsWith(JSP_FILE_SUF) || fileName.endsWith(HTML_FILE_SUF) || fileName.endsWith(PROPERTIES_FILE_SUF) || fileName.endsWith(VM_FILE_SUF))
			return true;
		
		return false;
	}
	
	/**
	 * 检查项目的根路径是否正确
	 * 
	 * @param path
	 *            项目路径
	 * @return true:传入的路径是正确的; false:传入的路径不正确
	 * @see [类、类#方法、类#成员]
	 */
	private boolean checkPath(String path) {
		
		if (StringUtils.isBlank(path))
			return false;
		
		rootFile = new File(path);
		
		if (!rootFile.exists() && !rootFile.isDirectory())
			return false;
		
		return true;
	}
	
	/**
	 * 统计指定文件下的所包含的指定格式的文件的行数
	 * 
	 * @param file
	 *            指定文件
	 * @throws IOException
	 *             文件不存在时抛出IO异常
	 * @see [类、类#方法、类#成员]
	 */
	private void countFilesLine(File file) throws IOException {
		
		File[] files = file.listFiles();
		
		if (null == files)
			return;
		
		for (int i = 0; i < files.length; i++) {
			File tempFile = files[i];
			String fileName = tempFile.getName();
			if (fileName.endsWith("svn"))
				continue;
			
			if (tempFile.isFile()) {
				if (isCountFileType(fileName)) {
					LineNumberReader linReader = new LineNumberReader(new FileReader(tempFile));
					linReader.skip(Long.MAX_VALUE);
					count += linReader.getLineNumber() + 1;
				}
			} else {
				// 当前为File目录,则进行递归
				countFilesLine(tempFile);
			}
		}
	}
	
	public static void main(String[] args) {
		ProjectCountLine countLine = new ProjectCountLine();
		try {
			long count = countLine.service("D:\\Works\\Test");
			System.out.println(count);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
分享到:
评论

相关推荐

    统计项目源代码行数

    获取项目源代码行数,只需将目录的文件夹路径设置一下即可。 如果想要获取布局文件。.css,只需在下方判断后缀名就可以了。 方便好用。

    代码行数统计工具

    代码行数统计工具,所有项目通用,代码行数统计工具,所有项目通用

    nodejs实现统计项目代码行数的代码资源

    代码清晰明了,注释也很详细,适合前端或nodejs初学者学习使用,也可以直接用于统计项目中的代码行数,以及用于多种前端场景下的二次封装,包括集成到项目和构建工具、或者IDE开发工具中,实时统计项目代码行数。

    c#源代码行数统计工具

    c#统计项目源代码行数,包括源代码,可自定义排除行,导出excel

    java 统计代码行数

    用于统计项目的代码行数。在代码中修改路径即可。适用于多种文件格式。

    php统计php代码行数程序

    一个用php做的统计php代码行数的程序

    代码统计工具 可统计项目行数

    可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...

    项目代码统计,代码行数统计

    统计项目代码行数,包括空白行、注释行、有效代码行、文件总数

    .net 代码行数统计工具

    .net 代码行数统计工具 可以详细统计出代码行数

    代码行数统计工具 source counter + diffcount

    SourceCounter是一个适用性广泛的代码统计工具,通过这个工具能够对30多种代码进行代码行数、注释、空行、文件大小等信息进行统计分析,另外软件还支持对软件开发的各个... 使用工具diffcount可以统计一个项目之间两个...

    统计项目中代码量,代码行数。

    统计项目中多有代码行数,不限项目类型,只需要将文件中for /R %%s in (.,*.config) do (文件类型改成自己要统计的文件类型的后缀名即可,此处统计的是config类型文件代码行数。

    VBCodeLines 代码行数统计工具

    VBCodeLines 代码行数统计工具,用户统计VB6项目代码行数。

    .net winform下 C#/VB.NET项目代码行数统计器

    本程序支持对sln(解决方案文件)、csproj(c#项目文件)、vbproj(vb.net项目文件)下所包含的源代码进行代码行数统计工作. 支持vs2003\2005\2008等版本所生成的解决方案文件或者项目文件 程序针对的语言为.net ...

    代码行数统计(c#统计项目代码行数)

    c#统计项目代码行数

    代码行数统计.exe

    刘大神用qt写的代码行数统计程序,很方便的一个小工具,可以统计文件数、字节数、总行数、代码行数、注释行数、空白行数

    代码行数统计器,可以统计一个工程下的代码行数。

    这是一个2005的工程,可以统计你的工程下的代码行数,压缩包内有编译好的,你也可以自己编译。写了一个很简单的,目前支持统计.h和.cpp(如果想添加.hpp, .m文件,看看我的代码,加上很简单的。) 在Bin文件夹下有一个...

Global site tag (gtag.js) - Google Analytics