`
doctang
  • 浏览: 4475 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

统计代码行数

 
阅读更多
public class CodeCounter {
	static long codeLines = 0;
	static long commentLines = 0;
	static long spaceLines = 0;
	static long classnum = 0;
	static long num = 0;

	public static void main(String[] args) {
		// 这里的目录要输入你要统计代码的文件夹目录
		File f = new File("D:\\Program Files\\MyEclipse 6.0\\workspace\\FlexWeb"); 
		if (f.exists()) {
			judge(f);
		}

		System.out.println("实际代码行数为:" + codeLines);
		System.out.println("注释代码行数为:" + commentLines);
		System.out.println("空行行数为:" + spaceLines);
		num = codeLines + commentLines + spaceLines;
		System.out.println("总的行数为:" + num);
		System.out.println("类的数目为:" + classnum);
	}

	private static void judge(File f) {
		if (!f.isFile()) {
			File[] fs = f.listFiles();
			for (File child : fs) {
				judge(child);
			}
		}
		if (f.exists() && f.isFile()) {
			counter(f);
		}
	}

	private static void counter(File child) {
		FileReader fr;
		try {
			fr = new FileReader(child);
			BufferedReader br = new BufferedReader(fr);
			String line = "";
			boolean flag = false;
			if (child.getName().matches(".*java$")) {
				try {
					while ((line = br.readLine()) != null) {
						String l = line.trim();
						if (l.matches(".*class.+")) {
							classnum++;
						}
						if (l.matches("^[[\\s]&&[^\\n]]*")) {
							spaceLines++;
						} else if (l.startsWith("/*") && l.endsWith("*/")) {
							commentLines++;
							flag = false;
						} else if (l.startsWith("/*")) {
							commentLines++;
							flag = true;
						} else if (l.endsWith("*/")) {
							commentLines++;
							flag = false;
						} else if (true == flag) {
							commentLines++;
						} else if (l.startsWith("//")) {
							commentLines++;
						} else {
							codeLines++;
						}
					}
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论

相关推荐

    visual studio和eclipse如何统计代码行数

    在软件开发过程中,统计代码行数是非常重要的一步,因为它可以帮助开发者了解代码的规模和复杂度,并且能够对代码质量和可维护性进行评估。在 Visual Studio 和 Eclipse 中,统计代码行数可以通过使用正则表达式和...

    统计代码行数的Eclipse插件

    "统计代码行数的Eclipse插件"就是这样一个工具,它能够帮助开发者快速地分析和度量他们的代码库,包括注释和实际可执行代码的数量。 这个插件设计精良,经过全面测试,确保了统计结果的准确性。无论是整个工程目录...

    Visual Studio 统计代码行数

    "Visual Studio 统计代码行数"这个主题就是一个非常实用的功能,它能帮助我们量化项目的代码量,进而评估项目进度、复杂性和维护性。以下是对这个功能的详细解释: Visual Studio是一款由微软公司开发的强大集成...

    C# 统计代码行数

    在C#编程中,统计代码行数是一项常见的需求,特别是在软件开发过程中进行代码质量管理或评估项目规模时。本文将详细讲解如何使用Visual Studio 2013(VS2013)来统计代码行数,并扩展到处理不同文件类型以及包含多个...

    非常实用的统计代码行数

    在软件开发过程中,统计代码行数是一项常见的任务,它可以帮助我们了解项目的规模、评估开发进度以及比较不同项目或模块的工作量。"非常实用的统计代码行数"工具就是专为此目的设计的。以下是对这个主题的详细说明:...

    idea统计代码行数插件.zip

    "idea统计代码行数插件"正是这样一款能够帮助开发者高效统计代码行数的利器。 该插件名为"统计代码行数的idea插件",其主要功能在于对项目中的不同类型的文件进行分类统计,包括Java源代码行数、XML配置文件行数...

    统计源代码行数工具exe

    统计代码行数虽然不是衡量软件质量的唯一标准,但它确实为项目管理和决策提供了一个量化的参考。比如,通过对比不同阶段的代码行数,可以评估开发进度;在团队协作中,可以依据每个人的代码贡献来分配任务或评价工作...

    java 统计代码行数

    在Java编程语言中,统计代码行数是一项常见的需求,它可以帮助开发者评估项目规模,跟踪代码增长,以及在软件维护和优化时提供参考。本篇文章将详细介绍如何使用Java来实现这一功能,同时考虑到不同文件格式的支持。...

    统计代码行数程序(可设置文件类型,可多目录、单目录统计,行数累加)

    标题中的“统计代码行数程序”是指一个工具或软件,其主要功能是计算代码文件中的行数。这个程序特别之处在于它可以处理一个或多个文件夹内的代码,这意味着它支持批量统计,大大提高了效率。用户不仅可以对整个目录...

    Count Lines of code 统计代码行数

    Count Lines of code 统计代码行数

    代码行数计算工具 win版 计算代码行数

    本文将详细介绍一款专用于Windows平台的代码行数计算工具,帮助读者掌握其使用方法,并探讨代码行数统计在实际开发中的意义。 首先,我们要明确的是,代码行数并不直接等同于软件质量,但它可以反映出项目的工作量...

    一个统计代码行数的小工具

    标题中的“一个统计代码行数的小工具”指的是一个专门用于计算源代码文件中代码行数的应用程序。这类工具在软件开发过程中非常有用,因为它能够帮助开发者量化工作量、跟踪项目进度,以及进行代码质量分析。它能处理...

    代码行数统计工具

    标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...

    统计代码行数的cmd小工具(附源码)

    在IT行业中,了解项目或代码库的规模是至关重要的,这通常通过统计代码行数来完成。本篇文章将详细介绍一个使用C++语言编写的命令行工具,它可以帮助开发者快速统计代码行数。这个名为"countlines"的小工具,提供了...

    uuStrpCount 统计代码行数

    《uuStrpCount:高效统计代码行数的工具详解》 在编程开发过程中,了解代码行数对于项目管理和代码质量评估具有重要意义。uuStrpCount是一款高效且实用的代码行数统计工具,它能帮助开发者快速准确地统计各种类型的...

Global site tag (gtag.js) - Google Analytics