- 浏览: 202708 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chenxliang:
10月26、27日,上海浦东,Postgres中国用户大会20 ...
postgres psql命令手册 -
13511079747:
daniaowansui 写道为什么这么多人都踩?应该是写的太 ...
Java泛型的实现原理 -
Doublecqw:
作者的这种写法.我也想到过.不过效率太低.你们可以测下.
Spring 注入静态变量 解决方案(之我见) -
daniaowansui:
为什么这么多人都踩?
Java泛型的实现原理 -
huangyufa123:
firefly.li 写道不用这么麻烦,注入静态变量时,set ...
Spring 注入静态变量 解决方案(之我见)
因为前一段上课,老师说:“咱们学校计算机专业毕业的学生,真正写过程序的人很少,现在程序员的标准是至少写过3w行代码,不然算不上程序员;是自己设计程序,而不算那些抄的,照书上打的等。”
我表示认同,只是说我们学校吧,是这样的,几乎没什么人写过程序。
前一段刚完成一个项目,闲着无聊,就写了一个程序,只需要修改项目名称就可以知道项目总代码数,当然,程序很简单,大家都能写出来,我只是提供给参考,有好的建议希望高手提出来。
//package org.linecount.counter; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.ArrayList; import java.util.List; /** * 计算一个项目中文件总行数 * @author Irfen * @version 1.0.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(1, path.length() - 22) + "/" + projectName; 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; } } } //将项目下所有文件组织成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; } //扫描的文件类型 if(s.getName().indexOf(".jsp") != -1 || s.getName().indexOf(".java") != -1 || s.getName().indexOf(".htm") != -1 || s.getName().indexOf(".html") != -1 || s.getName().indexOf(".js") != -1 || s.getName().indexOf(".css") != -1 ) { 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 = "ufo"; //这里传入你的项目名称 lc.counter(projectName); } }
评论
2 楼
irfen
2011-10-05
langyu 写道
还不错,鼓励下,如果把那个递归抽取出来就更好了。
还有,一般这样的需求不是传入项目名,而是传入项目的本地文件系统绝对目录
还有,一般这样的需求不是传入项目名,而是传入项目的本地文件系统绝对目录
传入系统的绝对路径的话是不错,这个吸取一下。而且程序也会稍微简单一点。
1 楼
langyu
2011-10-05
还不错,鼓励下,如果把那个递归抽取出来就更好了。
还有,一般这样的需求不是传入项目名,而是传入项目的本地文件系统绝对目录
还有,一般这样的需求不是传入项目名,而是传入项目的本地文件系统绝对目录
发表评论
-
Java八种基本数据类型占用字节数空间介绍
2014-03-07 08:50 3757大家都知道在java中有八种基本数据类型,他们所占得空间当然 ... -
Java堆内存的10个要点
2014-03-06 08:41 3028当我开始学习Java编程时,我不知道什么是堆内存或堆空间,我 ... -
Redis学习笔记(四)——Redis常用命令入门——散列类型
2014-03-04 19:54 8482三、散列命令 散列类型的键值其实也是一种字典解耦,其存储了 ... -
Redis学习笔记(三)——Redis常用命令入门——字符串类型命令
2014-03-03 08:33 3910前面两节已经把Redis了解了并安装完成了,接下来就是学习 ... -
Redis学习笔记(二)——Redis的准备
2014-03-02 13:17 8398一、安装Redis 第一步肯定是安装了。安装前先说下版本规 ... -
java虚拟机垃圾回收机制
2014-02-27 22:17 3421文章原创于本人博客,http://irfen.me/ 一、 ... -
关于struts2如何去掉默认的后缀(.action)
2014-02-10 12:00 8631struts2是可以配置默认的后缀名的,如http://l ... -
JVM 32位和64位区别
2013-12-18 09:05 2275在WebSphere的社区有一篇 ... -
Java中Thread状态学习记录
2013-11-19 09:08 8783一个线程创建之后,总是处于其生命周期的4个状态之一中。线程 ... -
使用Netty传输大文件内容
2013-10-25 13:44 12024最近又开始需要使用netty进行网络通信方面的编程开发了。于 ... -
Netty学习(3)
2013-10-04 17:33 951剩下的就是自己在网上找的一些资料了。 在这里很感谢淘宝中间 ... -
Netty学习(2)——Netty使用实例
2013-10-04 17:27 9898以下两个例子基于netty- ... -
Netty学习(1)
2013-10-04 17:23 1985其实到这家公司也有一段时间了,现在的公司是个做通信的公司,所 ... -
Java泛型的实现原理
2013-06-17 17:08 16857由于前一段时 ... -
Spring配置多数据源
2013-05-21 08:51 15162发表自本人博客 http://irfen.me ... -
使用JDBC Template处理数据
2013-04-25 17:40 36001. JDBCTemplate模板的update upd ... -
java获取文件编码格式
2013-02-26 09:58 14081:简单判断是UTF-8或不是UTF-8,因为一般除了UTF ... -
Java性能优化技巧
2013-02-17 14:54 856转载:http://blog.csdn.net ... -
java程序性能优化
2013-02-17 14:52 898一、避免在循环条件中使用复杂表达式 在不做编译优化的情况下 ... -
Web开发性能杂谈
2011-11-22 12:42 1005目标:开发高性能,可 ...
相关推荐
可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...
可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...
免费的源代码行数统计工具,支持20多种代码格式。具有统计迅速、准确的优点,是程序开发人员的必备工具。可以对 C++、VB.Net、VB、C#、JAVA、Delphi、ASP.Net、ASP、JSP、PHP、HTML 等项目的代码行数、工数和成本...
代码行统计工具用Java语言实现,可以对C\C++、Java的源代码进行统计,统计结果包括:总行数、空行数、注释行数和代码行数,统计结果可以以表格的形式显示给用户或另存为文件。 一 执行环境: 操作系统:WindowsNT/...
Java、C#、SQL 等程序源码进行详细的统计,可以准确的分 析出程序中代码行、注释行和空白行的行数。程序会自动根 据你选择的文件类型选择相应的统计方式,并将所有文件的 分析结果进行汇总,便于方便直观的对软件...
Java、C#、SQL 等程序源码进行详细的统计,可以准确的分 析出程序中代码行、注释行和空白行的行数。程序会自动根 据你选择的文件类型选择相应的统计方式,并将所有文件的 分析结果进行汇总,便于方便直观的对软件...
免费的源代码行数统计工具,支持20多种代码格式。可以对 VC++/.Net/JAVA/VB/Delphi/ASP/HTML 等项目的代码进行统计,并能保存统计的结果。 统计迅速、准确,是程序开发人员的必备工具
可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...
可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...
可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...
如果需要,可以把diffcount当作普通的代码行统计工具,统计一个代码包 代码统计使用 -c (或者--count-only)参数, 在diffcount目录下执行 diffcount -c test\count 执行结果如下: G:\diffcount>diffcount -c ...
可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...
Java、C#、SQL 等程序源码进行详细的统计,可以准确的分 析出程序中代码行、注释行和空白行的行数。程序会自动根 据你选择的文件类型选择相应的统计方式,并将所有文件的 分析结果进行汇总,便于方便直观的对软件...
可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java等程序源码进行详细的统计,可以非常准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将所有文件...
Java、C#、SQL 等程序源码进行详细的统计,可以准确的分 析出程序中代码行、注释行和空白行的行数。程序会自动根 据你选择的文件类型选择相应的统计方式,并将所有文件的 分析结果进行汇总,便于方便直观的对软件...