import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
@Slf4j
@SpringBootTest(classes = TelemarketCoreApplication.class)
@RunWith(SpringRunner.class)
public class Common {
/**
* 统计项目代码行数
*/
// @Test
// public void codeCount() throws Exception {
// Scanner cin = new Scanner(System.in) ;
// System.out.println("请输入地址:");
// String path = cin.next() ;
// codeCount machine = new codeCount(path) ;
// machine.caculator();
// System.out.println(machine.toString());
// cin.close();
// }
/**
* 统计项目代码行数
*/
@Test
public void codeCount() throws Exception {
codeCount machine = new codeCount("F:\\job-vcs\\telemarket-api") ;
machine.caculator();
System.out.println(machine.toString());
}
}
class codeCount {
private static int count ; //统计总行数
private static int countCPP ;//CPP
private static int countJAVA ;//java
private static int countPY ;//python
private String path ; //用于接收用户输入保存代码的文件夹的路径
private int reading(String path) throws Exception { //该函数用来统计一个代码文件的行数
FileReader reader = new FileReader(path) ;
BufferedReader buffer = new BufferedReader(reader) ;
int count = 0 ;
while(buffer.readLine()!=null) {
count ++ ;
}
buffer.close() ;
reader.close() ;
return count ;
}
private void caculate(String nowpath) throws Exception{//计数函数
File nowfile = new File(nowpath) ;
if (nowfile.isFile()) {
if (nowpath.endsWith(".cpp")) {
int sum = reading(nowpath) ;
countCPP += sum ;
count += sum ;
}
else if (nowpath.endsWith(".py")) {
int sum = reading(nowpath) ;
countPY += sum ;
count += sum ;
}
else if (nowpath.endsWith(".java")) {
int sum = reading(nowpath) ;
countJAVA += sum ;
count += sum ;
}
else {
System.out.println(nowpath+":该类型文件不属于代码文件或该代码文件统计功能正在开发中,敬请期待!");
}
}
else { //如果这个路径表示的是一个文件夹,则执行递归操作
String []filesset = nowfile.list() ;
for (String i:filesset ) {
String newpath = nowpath + nowfile.separator + i ;//合成路径
caculate(newpath) ;
}
}
}
public codeCount(String src) {
path = src ;
}
public static int getLinesCPP() {
return countCPP ;
}
public static int getLinesJAVA() {
return countJAVA ;
}
public static int getLinesPY() {
return countPY ;
}
public static int getLines() {
return count ;
}
public void caculator() throws Exception { //外界包装
this.caculate(path) ;
}
public String toString() { //重写toString方法
return "统计结果如下:\n" +
"cpp行数:\n"+countCPP +
"\njava行数:\n"+countJAVA +
"\npython行数:\n"+countPY ;
}
}
相关推荐
在软件开发过程中,统计代码行数是非常重要的一步,因为它可以帮助开发者了解代码的规模和复杂度,并且能够对代码质量和可维护性进行评估。在 Visual Studio 和 Eclipse 中,统计代码行数可以通过使用正则表达式和...
"统计代码行数的Eclipse插件"就是这样一个工具,它能够帮助开发者快速地分析和度量他们的代码库,包括注释和实际可执行代码的数量。 这个插件设计精良,经过全面测试,确保了统计结果的准确性。无论是整个工程目录...
"Visual Studio 统计代码行数"这个主题就是一个非常实用的功能,它能帮助我们量化项目的代码量,进而评估项目进度、复杂性和维护性。以下是对这个功能的详细解释: Visual Studio是一款由微软公司开发的强大集成...
在C#编程中,统计代码行数是一项常见的需求,特别是在软件开发过程中进行代码质量管理或评估项目规模时。本文将详细讲解如何使用Visual Studio 2013(VS2013)来统计代码行数,并扩展到处理不同文件类型以及包含多个...
在软件开发过程中,统计代码行数是一项常见的任务,它可以帮助我们了解项目的规模、评估开发进度以及比较不同项目或模块的工作量。"非常实用的统计代码行数"工具就是专为此目的设计的。以下是对这个主题的详细说明:...
"idea统计代码行数插件"正是这样一款能够帮助开发者高效统计代码行数的利器。 该插件名为"统计代码行数的idea插件",其主要功能在于对项目中的不同类型的文件进行分类统计,包括Java源代码行数、XML配置文件行数...
统计代码行数虽然不是衡量软件质量的唯一标准,但它确实为项目管理和决策提供了一个量化的参考。比如,通过对比不同阶段的代码行数,可以评估开发进度;在团队协作中,可以依据每个人的代码贡献来分配任务或评价工作...
在Java编程语言中,统计代码行数是一项常见的需求,它可以帮助开发者评估项目规模,跟踪代码增长,以及在软件维护和优化时提供参考。本篇文章将详细介绍如何使用Java来实现这一功能,同时考虑到不同文件格式的支持。...
标题中的“统计代码行数程序”是指一个工具或软件,其主要功能是计算代码文件中的行数。这个程序特别之处在于它可以处理一个或多个文件夹内的代码,这意味着它支持批量统计,大大提高了效率。用户不仅可以对整个目录...
Count Lines of code 统计代码行数
本文将详细介绍一款专用于Windows平台的代码行数计算工具,帮助读者掌握其使用方法,并探讨代码行数统计在实际开发中的意义。 首先,我们要明确的是,代码行数并不直接等同于软件质量,但它可以反映出项目的工作量...
标题中的“一个统计代码行数的小工具”指的是一个专门用于计算源代码文件中代码行数的应用程序。这类工具在软件开发过程中非常有用,因为它能够帮助开发者量化工作量、跟踪项目进度,以及进行代码质量分析。它能处理...
标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...
在IT行业中,了解项目或代码库的规模是至关重要的,这通常通过统计代码行数来完成。本篇文章将详细介绍一个使用C++语言编写的命令行工具,它可以帮助开发者快速统计代码行数。这个名为"countlines"的小工具,提供了...
《uuStrpCount:高效统计代码行数的工具详解》 在编程开发过程中,了解代码行数对于项目管理和代码质量评估具有重要意义。uuStrpCount是一款高效且实用的代码行数统计工具,它能帮助开发者快速准确地统计各种类型的...