在新公司工作将近一年了,一直独自一人负责服务端集群的运维和代码的编写。不知不觉从一个Project发展到了七八个Project。 看着越来越多的代码,今天突然想统计一下一共写了多少代码。【这里只统计完全由自己编写的代码,因为项目是基于Springboot的,所以直接统计 src目录下所有文件的行数即可】

首先,编写几个工具类。

FolderFind.java

import java.io.File;
import java.util.ArrayList;
import java.util.List;/*** Created by 杨小龙 on 2016-08-05.* 邮箱:1172875805@qq.com*/
public class FolderFind {//列出工程文件内的其他项目,使用match参数过滤工程名public static List<String> listFolder(String path,String match){File file = new File(path);List<String> re = new ArrayList<String>();if(file.isDirectory()){String[] list = file.list();if(list!=null){for(String item:list){if (item.contains(match)){re.add(path+item);}}}}return re;}//列出某一个目录下,所有的文件。public static List<String> listFile(String path){File file = new File(path);List<String> re = new ArrayList<String>();if(file.isDirectory()){File filelist[] = file.listFiles();if(filelist!=null){for(File item:filelist){if(item.isDirectory()){List<String> temp = listFile(item.getPath());re.addAll(temp);}else{re.add(item.getPath());}}}}return re;}
}

CountLine.java

import java.io.File;
import java.io.FileReader;
import java.io.LineNumberReader;/*** Created by 杨小龙 on 2016-08-05.* 邮箱:1172875805@qq.com*/
public class CountLine {public static int countFileLineNum(String path){File file = new File(path);if(file.isFile()){try{FileReader in = new FileReader(path);LineNumberReader reader = new LineNumberReader(in);//int num = reader.getLineNumber();String strLine = null;int num = 0;while ((strLine = reader.readLine()) != null) {num++;}reader.close();in.close();return num;}catch (Exception e){e.printStackTrace();}}return 0;}
}

Main函数所在文件:Tongji.java

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** Created by 杨小龙 on 2016-08-05.* 邮箱:1172875805@qq.com*/
public class Tongji {public static void main(String[] args) {List<String> fileList = FolderFind.listFolder("../","yoko");Map<String,Integer> re = new HashMap<String, Integer>();int all=0;for(String item:fileList){List<String> files = new ArrayList<String>();if(item.contains("yoko-config") || item.contains("config-data")){files = FolderFind.listFile(item+"\\");}else{files = FolderFind.listFile(item+"\\src\\");}int num=0;for(String item2:files){
//                System.out.println(item2);num = num + CountLine.countFileLineNum(item2);}all = all + num;re.put(item,num);System.out.println("工程【"+item+"】###"+num+"行");}System.out.println("总行数:"+all);}
}

运行后,该脚本统计了我ItellIJ工程目录下,携带"yoko"字符串的工程,运行结果如下图所示:

一 年左右的时间,竟然写了两百多万行。我自己都被自己震惊了……整天特别累,虽然写了很多代码,但是慢慢的我意识到,从生手到熟练后,更重要的是代码的质量 和算法的突破。以后将推掉这些基础性的工作,腾出更多的时间去多读书,研究研究理论性的东西。不能一直都在写一样的代码。

原文地址: 编写Java脚本统计工程代码总行数

相似文章:

  • Spring+Hibernate警告:Recognized obsolete hibernate namespace解决办法
  • 【教她写代码】博客首页的编写
  • 【教她写代码】Springboot的第一个Hello World程序
  • 【教她写代码】在MAC上使用git来协作
  • 【教她写代码】博客的架构设计
  • 【教她写代码】Springboot+Jquery+Ajax实现数据分页,动态加载。
  • 【教她写代码】SpringBoot+JQuery开发博客管理后台(2)

转载于:https://www.cnblogs.com/cliyun/p/5765825.html

编写Java脚本统计工程代码总行数相关推荐

  1. java 统计不同 代码,jgit比较项目不一样版本间的差别及统计代码总行数

    经过比较git项目两个版本,找出变更的代码,并统计代码的增量和减量html jgit版本java org.eclipse.jgit org.eclipse.jgit 4.4.1.20160715045 ...

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

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

  3. 统计java文件中的代码行数

    统计Java代码行数工具类  --  CodeCounterUtil.java 统计指定目录下的java文件中代码行数  --  public static int  getCodeNumFromFo ...

  4. jgit比较项目不同版本间的差异及统计代码总行数

    通过比较git项目两个版本,找出变动的代码,并统计代码的增量和减量 jgit版本 <dependency><groupId>org.eclipse.jgit</group ...

  5. IDEA统计代码总行数———————插件管理

    插件管理 功能背景: Explore Plugins for JetBrains Products Statistic插件 Statistic插件版本 Statistic插件的安装 在线安装: 离线安 ...

  6. java判断一个文件有多少行_Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)...

    要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...

  7. Python脚本可以统计项目代码行数

    将下列代码保存至py文件,然后命令行方式在console执行即可. 配置说明: ROOT_PATH配置source目录,会自动递归统计所有文件代码行数总和. INCLUDE_EMPTY_LINE:Tr ...

  8. 使用PYTHON统计项目代码行数

    目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...

  9. 统计 Git 代码行数

    要统计 Git 代码行数,您可以使用以下命令: git log --author=<作者> --pretty=tformat: --numstat | awk '{ add += $1 - ...

最新文章

  1. [分享]C# 获取Outlook帐号和密码
  2. [case19]聊聊eureka的TaskDispatcher
  3. C++程序设计之使用istringstream
  4. hibernate连接mysql密码错误,hibernate+mysql too many connections错误
  5. MaCfee导致Asp.net无法发送邮件的解决办法
  6. spring-boot项目打war包并部署到本地的tomcat容器
  7. spring 事务隔离级别和传播行为_Java工程师面试1000题146-Spring数据库事务传播属性和隔离级别...
  8. js中的date操作
  9. 53 岁张亚勤官宣:正式加入清华!
  10. 图像识别实战——天气分类
  11. html跟随鼠标事件,HTML5深入学习之鼠标跟随,拖拽事件
  12. React脚手架搭建及创建React项目
  13. 计算机论文有哪些方向,计算机论文研究方向有以下四类
  14. 论坛mysql表设计_网站论坛如何制作—简单论坛数据库的设计与操作
  15. 单节点 Elasticsearch 健康状态为 yellow 问题的解决
  16. Python学习 | 2021-11-05 Scipy聚类色彩提取
  17. MapReduce基本概述——分布式计算框架
  18. hdu4784 Dinner Coming Soon BFS
  19. 关于海外客户的设计交付体验与思考
  20. 网众无盘io服务器超时,网众无盘注意问题的解决教程

热门文章

  1. 团体标准的意义,办理团体标准的好处
  2. Java-AQI计算
  3. 治愈系课程教材 第四课
  4. 对待小动物需要多一份爱心
  5. Linux 永久修改主机名(转载)
  6. C语言高级教程-C语言数组(六):变长数组
  7. 【电子电路】ADC芯片如何选型
  8. 三星临时取消Galaxy Fold中国发布会;视觉中国网站部分恢复上线?官方回应:并未恢复;特斯拉周一发布完全自动驾驶将网络直播 | 雷锋早报...
  9. j3455安装linux 4k驱动,nas-j3455kvm安装win10及集成显卡直通
  10. 跨品种套利 (期货)