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怎么显示代码行数 ...
随机推荐
- 解决Keyboard遮盖输入的几种办法
一般来说,键盘遮挡主要有这么几种情况,一个是遮住UITextView,还有就是遮住UITextField,一般来说,比较推荐在UIScrollView或者UITableView里加入textfield ...
- libnids使用举例
---[[ libnids应用实例 ]]---------------------------------- 1.nids_next()函数的应用 ========================== ...
- delphi判断.net FrameWork是否已安装
判断系统中.NET FrameWork已安装版本的方法很多,比如检查C:\Windows\Microsoft.NET\Framework\下的子目录,但是子目录往往是包含版本号,比如v2.0.5072 ...
- Swift编程语言学习1.7——断言
断言 可选能够让你推断值是否存在,你能够在代码中优雅地处理值缺失的情况.然而,在某些情况下,假设值缺失或者值并不满足特定的条件,你的代码可能并不须要继续执行.这时.你能够在你的代码中触发一个断言(as ...
- Nginx网站常见的跳转配置实例
相信大家在日常运维工作中如果你用到nginx作为前端反向代理服务器的话,你会对nginx的rewrite又爱又恨,爱它是因为你搞定了它,完成了开发人员的跳转需求后你会觉得很爽,觉得真的很强大,恨它是因 ...
- bp算法中为什么会产生梯度消失?
作者:维吉特伯链接:https://www.zhihu.com/question/49812013/answer/148825073来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- 条件随机场 (CRF) 分词序列谈之一(转)
http://langiner.blog.51cto.com/1989264/379166 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.ht ...
- idea缓存目录mac cache
IDEA如果出现卡顿,Index疯狂扫描,建议清空一下如下目录 ~/Library/Caches/IntelliJIdea2017.3 Resource nexus-maven-repository- ...
- Redis实战总结-Redis的高可用性
在之前的博客<Redis实战总结-配置.持久化.复制>给出了一种Redis主从复制机制,简单地实现了Redis高可用.然后,如果Master服务器宕机,会导致整个Redis瘫痪,这种方式的 ...
- JS获取当前/指定URL参数
方法: 首先通过 document.location 获得当前访问网页的网址, 其次用 split 方法通过“?”把网址分为两部分. 如果网址中有参数(arrObj.length > 1) 再用 ...