java代码行数计算器
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List; /**
* **********************************************
* @description 计算源代码(src)行数,不计算空行
* 宗旨:将src下所有文件组装成list,再筛选出文件,对文件进行遍历读取
* @version 1.0
***********************************************
*/
public class LineCounter {
List<File> list = new ArrayList<File>();
int linenumber = 0; FileReader fr = null;
BufferedReader br = null; public void counter(String projectName) {
// String path = System.getProperty("user.dir");
String path = LineCounter.class.getResource("/").getPath(); // 同下个path
path = path.substring(0, path.length() - 24) + projectName + "/src";
System.out.println(path);
File file = new File(path);
File files[] = null;
files = file.listFiles();
addFile(files);
isDirectory(files);
readLinePerFile();
System.out.println("Totle:" + linenumber + "行");
} // 判断是否是目录
public void isDirectory(File[] files) {
for (File s : files) {
if (s.isDirectory()) {
File file[] = s.listFiles();
addFile(file);
isDirectory(file);
continue;
}
}
} //将src下所有文件组织成list
public void addFile(File file[]) {
for (int index = 0; index < file.length; index++) {
list.add(file[index]);
// System.out.println(list.size());
}
} //读取非空白行
public void readLinePerFile() {
try {
for (File s : list) {
int yuan = linenumber;
if (s.isDirectory()) {
continue;
}
fr = new FileReader(s);
br = new BufferedReader(fr);
String i = "";
while ((i = br.readLine()) != null) {
if (isBlankLine(i))
linenumber++;
}
System.out.print(s.getName());
System.out.println("\t\t有" + (linenumber - yuan) + "行");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (Exception e) {
}
}
if (fr != null) {
try {
fr.close();
} catch (Exception e) {
}
}
}
} //是否是空行
public boolean isBlankLine(String i) {
if (i.trim().length() == 0) {
return false;
} else {
return true;
}
} public static void main(String args[]) {
LineCounter lc = new LineCounter();
String projectName = ""; //这里传入你的项目名称
lc.counter(projectName);
}
}
java代码行数计算器的更多相关文章
- java代码行数统计工具类
package com.syl.demo.test; import java.io.*; /** * java代码行数统计工具类 * Created by 孙义朗 on 2017/11/17 0017 ...
- 统计文件夹下java代码行数的小程序--主要是学习任务队列的思想
首先感谢czbk的老师,录制的视频,让我们有这么好的学习资料.……—— 统计文件夹java文件的行数,首先想到的肯定是用递归的方法,因为文件夹下面可能包含文件夹,用递归的方法,代码容易写.(这和写简单 ...
- [转] 一句shell命令搞定代码行数统计
今天面试时,突然被面试官问到怎样用shell命令搞定某个文件夹下java代码行数的统计. 想了一下,基本思路就是找到这个文件夹下面的所有java文件,然后每个文件统计一下代码,外层套个for循环,叠加 ...
- Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)
要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...
- 图文介绍如何在Eclipse统计代码行数(转)
使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expressi ...
- 图文介绍如何在Eclipse统计代码行数
使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular expressi ...
- Android Stduio统计项目的代码行数
android studio统计项目的代码行数的步骤如下: 1)按住Ctrl+Shift+A,在弹出的框输入‘find’,然后选择Find in Path.(或者使用快捷键Ctrl+Shift+F) ...
- eclipse-统计代码行数
使用Eclipse可以方便的统计工程或文件的代码行数,方法如下: 1.点击要统计的项目或许文件夹,在菜单栏点击Search,然后点击File... 2.选中正则表达式(Regular express ...
- eclipse怎么显示代码行数
熟悉java开发的朋友们肯定有这样的经验,那就是在用eclipse进行java开发的时候,没有显示代码的行数,这并不利于我们进行程序的调试.今天,小编就来教大家eclipse怎么显示代码行数 ...
随机推荐
- tensorflow语义分割api使用(deeplab训练cityscapes)
安装教程:https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/installation.md citysca ...
- 交互软件Axure—高保真原型
在上一篇文章中跟大家分享了Axure7.0 的简介.基本操作和原型图的制作,主要是应用元件库里的原件进行界面元素的搭建,直至完成原型图,在最后给大家展示了高保真原型图效果.而在本次分享中,主要带领大家 ...
- Flask Restful服务简单实现
官网:http://flask.pocoo.org/docs/1.0/quickstart/#routing 1.安装 windows下:pip3 install Flask 具体参照:windows ...
- JAVA 中不错的开源FTP组件:commons-net
第一步:引入jar到pom.xml. <!-- https://mvnrepository.com/artifact/commons-net/commons-net --> <dep ...
- OpenGL ES 3.0之Uniform详解
Uniform是变量类型的一种修饰符,是OpenGL ES 中被着色器中的常量值,使用存储各种着色器需要的数据,例如:转换矩阵.光照参数或者颜色. uniform 的空间被顶点着色器和片段着色器分享 ...
- 【Nodejs】使用http.request批量下载MP3,发现网络文件大于1000K时下载文件为0K
这又一次让我对http.request产生质疑 //====================================================== // 喜爱123四年级上英语MP3下载 ...
- pdo_mysql安装不了或是安装后用不了的修复教程
目前发现wdOS及lanmp_wdcp的RPM包安装在部分系统下安装后,在安装pdo_mysql时无法安装或安装后无法使用的问题 如在安装时提示下如下 regenerate PHP parsers.c ...
- ios Url Encode
//ios Url Encode //有时候在请求的参数里里特殊符号比如“+”等.而如果没有encode的话那么传过去的还是” ”,面实际上是%2B. -(NSString*)UrlValueEnco ...
- JS获取当前/指定URL参数
方法: 首先通过 document.location 获得当前访问网页的网址, 其次用 split 方法通过“?”把网址分为两部分. 如果网址中有参数(arrObj.length > 1) 再用 ...
- word2013总是出现未响应卡一下如何解决?
最近在记笔记,word很烦很烦,总是会卡一下,过一会卡一下.本来以为是自动保存后来发现跟自动保存没有关系. 解决方法:禁用硬件图形加速就好了,不行的话再在硬件加速下面有个"使用子像素定位平滑 ...