编写Java脚本统计工程代码总行数
在新公司工作将近一年了,一直独自一人负责服务端集群的运维和代码的编写。不知不觉从一个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"字符串的工程,运行结果如下图所示:
一 年左右的时间,竟然写了两百多万行。我自己都被自己震惊了……整天特别累,虽然写了很多代码,但是慢慢的我意识到,从生手到熟练后,更重要的是代码的质量 和算法的突破。以后将推掉这些基础性的工作,腾出更多的时间去多读书,研究研究理论性的东西。不能一直都在写一样的代码。
相似文章:
- 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脚本统计工程代码总行数相关推荐
- java 统计不同 代码,jgit比较项目不一样版本间的差别及统计代码总行数
经过比较git项目两个版本,找出变更的代码,并统计代码的增量和减量html jgit版本java org.eclipse.jgit org.eclipse.jgit 4.4.1.20160715045 ...
- java 方法数统计_利用Java简单实现一个代码行数统计器方法实例
前言 哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行. 先附上实现代码吧! pack ...
- 统计java文件中的代码行数
统计Java代码行数工具类 -- CodeCounterUtil.java 统计指定目录下的java文件中代码行数 -- public static int getCodeNumFromFo ...
- jgit比较项目不同版本间的差异及统计代码总行数
通过比较git项目两个版本,找出变动的代码,并统计代码的增量和减量 jgit版本 <dependency><groupId>org.eclipse.jgit</group ...
- IDEA统计代码总行数———————插件管理
插件管理 功能背景: Explore Plugins for JetBrains Products Statistic插件 Statistic插件版本 Statistic插件的安装 在线安装: 离线安 ...
- java判断一个文件有多少行_Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)...
要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...
- Python脚本可以统计项目代码行数
将下列代码保存至py文件,然后命令行方式在console执行即可. 配置说明: ROOT_PATH配置source目录,会自动递归统计所有文件代码行数总和. INCLUDE_EMPTY_LINE:Tr ...
- 使用PYTHON统计项目代码行数
目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...
- 统计 Git 代码行数
要统计 Git 代码行数,您可以使用以下命令: git log --author=<作者> --pretty=tformat: --numstat | awk '{ add += $1 - ...
最新文章
- [分享]C# 获取Outlook帐号和密码
- [case19]聊聊eureka的TaskDispatcher
- C++程序设计之使用istringstream
- hibernate连接mysql密码错误,hibernate+mysql too many connections错误
- MaCfee导致Asp.net无法发送邮件的解决办法
- spring-boot项目打war包并部署到本地的tomcat容器
- spring 事务隔离级别和传播行为_Java工程师面试1000题146-Spring数据库事务传播属性和隔离级别...
- js中的date操作
- 53 岁张亚勤官宣:正式加入清华!
- 图像识别实战——天气分类
- html跟随鼠标事件,HTML5深入学习之鼠标跟随,拖拽事件
- React脚手架搭建及创建React项目
- 计算机论文有哪些方向,计算机论文研究方向有以下四类
- 论坛mysql表设计_网站论坛如何制作—简单论坛数据库的设计与操作
- 单节点 Elasticsearch 健康状态为 yellow 问题的解决
- Python学习 | 2021-11-05 Scipy聚类色彩提取
- MapReduce基本概述——分布式计算框架
- hdu4784 Dinner Coming Soon BFS
- 关于海外客户的设计交付体验与思考
- 网众无盘io服务器超时,网众无盘注意问题的解决教程