package temporary;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ProjectLine {
List<File> fileList = new ArrayList<>(); //存放项目中所有文件和文件夹
int lineNumber = 0; //记录项目的总行数
public void countLines(String projectName) throws IOException {
//当前项目在工作空间下的位置
String path = System.getProperty("user.dir");
//修改为需要统计行数项目的位置,注意在同一工作目录下
path = path.substring(0, path.lastIndexOf("\\")+1) + projectName + "\\src";
System.out.println("path = " + path);
//读取当前目录src下的所有文件
File file = new File(path);
File[] files = file.listFiles();
//存放所有文件
addAllFiles(files);
//统计行数
readLines();
System.out.println("Project \"" + projectName + "\" has " + lineNumber + " lines!");
}
//判断是否为文件夹,如是,继续往下查找判断,并将所有的文件和文件夹存放到fileList中
public void addAllFiles(File[] files) {
for (File file : files) {
fileList.add(file);
// System.out.println(file.toString());
if (file.isDirectory()) {
files = file.listFiles();
addAllFiles(files);
continue;
}
}
}
//读取所有文件的行数
public void readLines() throws IOException {
FileReader fr = null;
BufferedReader br = null;
for (File file : fileList) {
int temp = lineNumber; //记录已经统计过的文件总行书,用于计算当前文件的行数
if (file.isDirectory()) {
continue; //判断为目录的则不参加计数
}
fr = new FileReader(file);
br = new BufferedReader(fr);
String line = "";
while ((line = br.readLine()) != null) {
if (!isBlankLine(line)) {
lineNumber++;
}
}
System.out.println(file.getName() + " has " + (lineNumber - temp) + " lines.");
}
fr.close();
br.close();
}
//判断是否为空行
public boolean isBlankLine(String line) {
if (line.trim().length() == 0)
return true;
return false;
}
public static void main(String[] args) throws IOException {
ProjectLine pl = new ProjectLine();
String projectName = "Blog";
pl.countLines(projectName);
}
}
//output~
path = C:\Documents and Settings\Administrator\workspace\Blog\src
Search.java has 12 lines.
AllSort.java has 124 lines.
BubbleSort.java has 43 lines.
HeapSort.java has 101 lines.
InsertSort.java has 57 lines.
MergeSort.java has 103 lines.
QuickSort.java has 56 lines.
SelectSort.java has 48 lines.
ProjectLine.java has 71 lines.
ProjectLines.java has 80 lines.
Soilder.java has 30 lines.
Project "Blog" has 725 lines!
分享到:
相关推荐
标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...
这些文件可能并不是直接相关的统计代码行数的代码,但它们是构建和运行Java项目所必需的。 总的来说,通过Java实现的这个工具,我们可以自动化地获取SVN仓库中的代码修改情况,这对于项目管理和团队协作具有重要的...
在Java项目中,代码行数统计尤其重要,因为它可以帮助开发者保持代码的整洁和可读性,防止过度复杂化。通过这个Eclipse插件,开发者可以轻松地查看代码中的注释行数,这在一定程度上反映了代码的可读性和文档质量。...
在Java编程语言中,统计代码行数是一项常见的需求,它可以帮助开发者评估项目规模,跟踪代码增长,以及在软件维护和优化时提供参考。本篇文章将详细介绍如何使用Java来实现这一功能,同时考虑到不同文件格式的支持。...
在软件开发过程中,统计代码行数是一项常见的任务,它可以帮助我们了解项目的规模,评估工作量,以及进行代码质量分析。本篇文章将详细讲解如何在Java环境中统计代码行数,包括Java代码行、注释行以及类的数量。 ...
统计源代码行数(SLOC,Source Lines of Code)是一种常见的度量方法,它能够帮助开发者了解项目的规模、估算开发时间和资源需求。"统计源代码行数工具exe"正是这样一款实用工具,它允许用户快速地对代码库进行分析...
这款“代码行数计算工具 win版”是专为Windows用户设计的,旨在方便地统计项目中各种编程语言的代码行数。它支持多种常见的编程语言,如C、C++、Java、Python、JavaScript等,甚至包括HTML、CSS等前端语言。通过简单...
Visual Studio 和 Eclipse 中代码行数统计方法 在软件开发过程中,统计代码行数是非常重要的一步,因为它可以帮助开发者了解代码的规模和复杂度,并且能够对代码质量和可维护性进行评估。在 Visual Studio 和 ...
本文将深入探讨如何使用Java工具类来统计一个项目中的代码行数。 首先,我们需要理解代码行数计算的基本概念。通常,代码行数包括源代码文件中的所有非空行,但不包括注释行。在实际项目中,我们可能需要区分空行、...
在Java编程语言中,统计代码行数是一项常见的需求,特别是在软件工程中进行代码质量分析、度量和项目管理时。这个任务通常涉及到遍历指定目录下的所有文件,并针对特定格式的源代码文件(如.java、.cpp等)进行行数...
在软件开发过程中,统计源代码行数(Lines of Code, LOC)是一种常见的度量方法,用于评估项目的规模、复杂性和工作量。统计源代码行数不仅包括实际的可执行代码,还包括注释和空行。然而,对于有效的代码行数,通常...
在软件开发过程中,统计源代码行数是一种常见的度量方式,可以帮助开发者理解项目的规模、复杂性和维护成本。本文将深入探讨“统计源代码行数工具”及其重要性,并提供一些实用的方法来完成这项任务。 首先,我们要...
"eclipse代码行数统计插件"就是这样一个工具,它能够帮助开发者快速地统计出项目中的代码行数,包括注释和空行。 在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择...
在Java编程语言中,代码行数统计是一种常见的需求,它可以帮助开发者评估项目规模,跟踪代码增长,以及在软件维护和优化时提供参考。本软件专为Java开发人员设计,能够统计整个工程的代码行数,提供了对源代码的全面...
Java多线程代码行数计数器是一款实用的工具,主要功能是针对特定后缀名的文件进行代码行数的统计。在软件工程中,了解代码行数有时可以帮助开发者评估项目规模,跟踪代码增长,或者在性能优化时作为参考。这款工具...
"项目代码行数统计"的主题通常涉及如何在Java项目中进行这样的统计,以及它对项目管理、成本估算和质量控制的意义。在Java项目中,统计代码行数可以帮助开发者了解项目的规模,评估开发进度,以及比较不同开发团队的...
Java代码行数统计工具是一种实用程序,它可以帮助开发者量化他们的工作量,跟踪项目进度,以及进行代码质量分析。这个zip文件包含的工具专门设计用来计算Java源代码中的行数,提供了一个直观的方式来了解代码库的...