利用Java简单实现一个代码行数统计器方法实例

 更新时间:2020年11月09日 10:42:16   作者:Li_black  
这篇文章主要给大家介绍了关于如何利用Java简单实现一个代码行数统计器的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行。

先附上实现代码吧!

package InOutStream;
import java.util.* ;
import java.io.* ;

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.substring(nowpath.indexOf("."))+":该类型文件不属于代码文件或该代码文件统计功能正在开发中,敬请期待!");
			}
		}
		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 ;
	}
}

public class Count{
	public static void main(String []args) 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();
	}
}

实例:

我在桌面保存了一个文件夹用来保存代码:

打开后是这个样子:

取路径:

运行程序,将路径粘贴到程序之内

结果如下!!!

这就是所有代码拉!!如果你有其他什么实现方法或者意见或者建议,欢迎在评论区中提出来哦!

ps:由于我只学了c、cpp、java、python。所以代码中只针对这几种进行了统计,欢迎您修改代码来满足您的需求!!

总结

到此这篇关于利用Java简单实现一个代码行数统计器的文章就介绍到这了,更多相关Java实现代码行数统计器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Java批量从svn导出多个项目代码实例

    Java批量从svn导出多个项目代码实例

    这篇文章主要介绍了java批量从svn导出多个项目代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java终止线程的两种方法

    Java终止线程的两种方法

    本文主要介绍了Java终止线程的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Springboot集成JSR303参数校验的方法实现

    Springboot集成JSR303参数校验的方法实现

    这篇文章主要介绍了Springboot集成JSR303参数校验的方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 使用Spring Cloud Feign远程调用的方法示例

    使用Spring Cloud Feign远程调用的方法示例

    这篇文章主要介绍了使用Spring Cloud Feign远程调用的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)

    Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)

    这篇文章主要介绍了Eclipse+Java+Swing+Mysql实现电影购票系统并附详细的代码详解,需要的小伙伴可以参考一下
    2022-01-01
  • java数据类型与变量的安全性介绍

    java数据类型与变量的安全性介绍

    这篇文章主要介绍了java数据类型与变量的安全性介绍,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • Java实体类之间的相互转换方式

    Java实体类之间的相互转换方式

    这篇文章主要介绍了Java实体类之间的相互转换方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 详解Spring如何解决循环引用的问题

    详解Spring如何解决循环引用的问题

    在Spring框架中,当两个或多个Bean之间存在相互依赖关系时,可能会导致循环引用的问题,循环引用指的是两个或多个Bean之间互相依赖,形成一个循环链,本文将和大家一起探讨Spring如何解决循环引用的问题,感兴趣的小伙伴跟着小编一起来看看吧
    2023-08-08
  • mybatis 事务回滚配置操作

    mybatis 事务回滚配置操作

    这篇文章主要介绍了mybatis 事务回滚配置操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 如何将应用的log4j替换成logback详解

    如何将应用的log4j替换成logback详解

    无论从设计上还是实现上,Logback相对log4j而言有了相对多的改进。所以下面这篇文章主要给大家介绍了关于如何将应用的log4j换成logback的相关资料,文中介绍的很详细,需要的朋友可以参考下。
    2017-02-02

最新评论