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

作者:Li_black 时间:2023-01-12 10:50:25 

前言

哈喽,我是小黑, 最近学了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();
}
}

实例:

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

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

打开后是这个样子:

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

取路径:

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

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

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

结果如下!!!

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

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

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

来源:https://blog.csdn.net/Li_black/article/details/109558603

标签:java,代码,行数
0
投稿

猜你喜欢

  • 详解Java中Optional类的使用方法

    2023-11-25 05:22:28
  • Java 超详细讲解IO操作字节流与字符流

    2022-04-28 20:09:57
  • C#多线程实现异步接口

    2023-09-09 04:58:52
  • android教程viewpager自动循环和手动循环

    2021-07-23 12:03:06
  • C#实现类似新浪微博长URL转短地址的方法

    2023-06-02 12:59:28
  • Android应用中仿今日头条App制作ViewPager指示器

    2023-02-01 15:45:24
  • C#实现的二维数组排序算法示例

    2023-01-05 20:23:07
  • 史上最全的java随机数生成算法分享

    2023-10-17 15:22:33
  • java输入字符串并将每个字符输出的方法

    2022-10-04 01:25:37
  • C#实现简单的JSON序列化功能代码实例

    2023-06-21 09:03:52
  • 浅析SpringBoot2底层注解@Conditional@ImportResource

    2023-08-01 23:35:51
  • Android实现根据评分添加星级条

    2021-10-30 13:19:57
  • java代码执行字符串中的逻辑运算方法

    2023-11-29 12:13:06
  • 老生常谈Java动态编译(必看篇)

    2022-04-02 14:19:38
  • seata springcloud整合教程与遇到的坑

    2023-09-19 03:11:06
  • Spring AOP在web应用中的使用方法实例

    2023-12-24 12:20:00
  • C#中使用IrisSkin2.dll美化WinForm程序界面的方法

    2023-11-25 20:45:58
  • 详解Spring Security如何在权限中使用通配符

    2023-04-17 23:41:54
  • 解决MyEclipse中的Building workspace问题的三个方法

    2023-10-25 09:00:51
  • C#.Net ArrayList的使用方法

    2022-01-17 05:29:14
  • asp之家 软件编程 m.aspxhome.com