import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; /** * 代码行数统计 */ public class CodeCounter { /** * 代码行数统计 */ public static void main(String[] args) { String file = CodeCounter.class.getResource("/").getFile(); String path = file.replace("target/test-classes", "src"); ArrayList<File> al = getFile(new File(path)); for (File f : al) { if (f.getName().matches(".*\\.java$")){ // 匹配java格式的文件 count(f); System.out.println(f); } } System.out.println("统计文件:" + files); System.out.println("代码行数:" + codeLines); System.out.println("注释行数:" + commentLines); System.out.println("空白行数:" + blankLines); } static long files = 0; static long codeLines = 0; static long commentLines = 0; static long blankLines = 0; static ArrayList<File> fileArray = new ArrayList<File>(); /** * 获得目录下的文件和子目录下的文件 * @param f * @return */ public static ArrayList<File> getFile(File f) { File[] ff = f.listFiles(); for (File child : ff) { if (child.isDirectory()) { getFile(child); } else fileArray.add(child); } return fileArray; } /** * 统计方法 * @param f */ private static void count(File f) { BufferedReader br = null; boolean flag = false; try { br = new BufferedReader(new FileReader(f)); String line = ""; while ((line = br.readLine()) != null) { line = line.trim(); // 除去注释前的空格 if (line.matches("^[ ]*$")) { // 匹配空行 blankLines++; } else if (line.startsWith("//")) { commentLines++; } else if (line.startsWith("/*") && !line.endsWith("*/")) { commentLines++; flag = true; } else if (line.startsWith("/*") && line.endsWith("*/")) { commentLines++; } else if (flag == true) { commentLines++; if (line.endsWith("*/")) { flag = false; } } else { codeLines++; } } files++; } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); br = null; } catch (IOException e) { e.printStackTrace(); } } } } }
相关推荐
统计Java代码行数的方法有很多种,这里我们将介绍手动统计和使用工具自动统计两种方式。 1. **手动统计**: - 打开`mypro.rar`压缩包,解压后找到包含Java源代码的`.java`文件。 - 使用文本编辑器打开文件,逐行...
"统计代码行数的Eclipse插件"就是这样一个工具,它能够帮助开发者快速地分析和度量他们的代码库,包括注释和实际可执行代码的数量。 这个插件设计精良,经过全面测试,确保了统计结果的准确性。无论是整个工程目录...
针对Java编程语言,有一个专门用于统计代码行数的工具,它不仅适用于Java,还支持C++、Delphi和C#等其他编程语言。本文将详细介绍这个名为"IrisCodeCounter"的工具,以及如何利用它来有效地分析和管理代码库。 ...
下面是一个简化的Java代码片段,展示了如何处理Java源文件的代码行统计: ```java import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class ...
Java实现的SVN统计修改代码行数的源码解析 在软件开发过程中,代码行数(LOC,Lines of Code)经常被用作评估项目规模、工作量和复杂度的一个指标。对于版本控制系统如Subversion(SVN),了解每次提交中修改的代码...
总之,"java代码行数统计源码"提供的工具是一个实用的开发辅助程序,它综合运用了Java的文件操作、源代码解析、数据处理和可能的用户界面设计等多个技术领域,为开发者提供了一种量化评估项目规模的方式。...
"统计源代码行数工具exe"正是这样一款实用工具,它允许用户快速地对代码库进行分析,统计不同类型的代码文件行数。 这款工具的主要功能在于它的易用性和灵活性。作为一个.exe可执行文件,用户无需安装任何额外的...
标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...
Visual Studio 和 Eclipse 中代码行数统计方法 在软件开发过程中,统计代码行数是非常重要的一步,因为它可以帮助开发者了解代码的规模和复杂度,并且能够对代码质量和可维护性进行评估。在 Visual Studio 和 ...
"eclipse代码行数统计插件"就是这样一个工具,它能够帮助开发者快速地统计出项目中的代码行数,包括注释和空行。 在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择...
通过简单的操作,用户可以快速获取到项目中每个文件或整个目录的代码行数统计。 使用该工具的方法如下: 1. 下载并安装“代码行数计算工具 win版”。 2. 打开软件,用户界面通常会有一个文件或目录选择框,你可以...
Java代码行数统计工具是一种实用程序,它可以帮助开发者量化他们的工作量,跟踪项目进度,以及进行代码质量分析。这个zip文件包含的工具专门设计用来计算Java源代码中的行数,提供了一个直观的方式来了解代码库的...
本文将深入探讨如何使用Java工具类来统计一个项目中的代码行数。 首先,我们需要理解代码行数计算的基本概念。通常,代码行数包括源代码文件中的所有非空行,但不包括注释行。在实际项目中,我们可能需要区分空行、...
例如,Python 中有一个名为 `cloc` 的库,它可以快速地计算出源代码文件中的代码行数、注释行数和空行数。`cloc` 不仅支持多种编程语言,还能处理包含嵌套注释的情况。使用 `cloc`,你只需将你的代码文件或整个项目...
例如,新加入团队的成员可以通过查看代码行数快速了解项目的整体规模。 在实际操作中,手动统计源代码行数是不切实际的,因此我们需要借助工具。这里提到的“统计源代码行数工具”通常具备以下功能: 1. 支持多种...
MyEclipse中有一项代码统计的功能,可以统计出代码的行数,但是只能查看Java代码的行数,而Eclipse中根本没有此功能(可能本人没有找到),所以我写了一个代码统计的代码,可以查看工程中的Java代码,jsp代码,xml...
1. **多语言支持**:能够识别并统计不同编程语言的代码行数,如C++, Java, Python, JavaScript等。 2. **排除规则**:允许用户定义规则来排除注释、空行或特定文件夹,确保统计结果更准确。 3. **详细报告**:生成...