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,只需在下方判断后缀名就可以了。 方便好用。
标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...
这款“代码行数计算工具 win版”是专为Windows用户设计的,旨在方便地统计项目中各种编程语言的代码行数。它支持多种常见的编程语言,如C、C++、Java、Python、JavaScript等,甚至包括HTML、CSS等前端语言。通过简单...
代码清晰明了,注释也很详细,适合前端或nodejs初学者学习使用,也可以直接用于统计项目中的代码行数,以及用于多种前端场景下的二次封装,包括集成到项目和构建工具、或者IDE开发工具中,实时统计项目代码行数。
在Java项目中,代码行数统计尤其重要,因为它可以帮助开发者保持代码的整洁和可读性,防止过度复杂化。通过这个Eclipse插件,开发者可以轻松地查看代码中的注释行数,这在一定程度上反映了代码的可读性和文档质量。...
"C#源代码行数统计工具"就是专为此目的设计的实用程序,它能够帮助开发者快速准确地计算出C#项目的源代码总量。这种工具在项目管理、代码审计、性能评估等方面都有重要作用,因为它可以提供对代码库大小和复杂性的一...
统计源代码行数(SLOC,Source Lines of Code)是一种常见的度量方法,它能够帮助开发者了解项目的规模、估算开发时间和资源需求。"统计源代码行数工具exe"正是这样一款实用工具,它允许用户快速地对代码库进行分析...
在C#编程中,统计代码行数是一项常见的需求,特别是在软件开发过程中进行代码质量管理或评估项目规模时。本文将详细讲解如何使用Visual Studio 2013(VS2013)来统计代码行数,并扩展到处理不同文件类型以及包含多个...
Visual Studio 和 Eclipse 中代码行数统计方法 在软件开发过程中,统计代码行数是非常重要的一步,因为它可以帮助开发者了解代码的规模和复杂度,并且能够对代码质量和可维护性进行评估。在 Visual Studio 和 ...
在软件开发过程中,对项目代码进行统计是一项至关重要的任务,它可以帮助我们理解项目的规模、复杂性和维护性。本文将深入探讨“项目代码统计,代码行数统计”这一主题,包括如何计算不同类型的代码行,以及如何利用...
在实际工作中,你可能需要根据项目需求进一步筛选条件,例如只统计特定文件或目录的代码行数,这时可以结合`-- path`选项使用`git log`。 总结来说,`git log`是一个强大的命令,它提供了丰富的选项来查询和分析...
首先,我们要明白代码行数统计并不简单地是计算文本文件中的换行符数量,因为注释行和空行也需要被排除。在PHP中,我们可以通过读取文件内容,然后进行字符串处理来实现这一目标。以下是一个简单的PHP脚本示例,用于...
在进行大型项目管理时,统计代码行数是一个重要的参考指标,这不仅可以帮助估算项目工作量,还可以在团队协作中追踪各个成员的贡献。 Visual Studio提供了多种方法来统计代码行数。一种是通过内置的代码分析工具,...
在编程领域,代码行数(Lines of...总的来说,C#有效代码行数统计是软件工程中一项重要的辅助工具,它能为项目管理和代码优化提供有价值的数据支持。通过合理使用统计方法和工具,我们可以更好地理解和改进我们的代码。
"eclipse代码行数统计插件"就是这样一个工具,它能够帮助开发者快速地统计出项目中的代码行数,包括注释和空行。 在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择...
总的来说,".NET代码行数统计工具"是开发者和项目管理者的重要辅助工具,它们提供了量化代码规模的方法,帮助我们更好地理解和管理代码库。通过合理使用这些工具,我们可以更有效地评估项目状态,优化代码结构,提升...