`
irfen
  • 浏览: 204906 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java版 项目 行数统计程序

    博客分类:
  • java
阅读更多

      因为前一段上课,老师说:“咱们学校计算机专业毕业的学生,真正写过程序的人很少,现在程序员的标准是至少写过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
2
分享到:
评论
2 楼 irfen 2011-10-05  
langyu 写道
还不错,鼓励下,如果把那个递归抽取出来就更好了。

还有,一般这样的需求不是传入项目名,而是传入项目的本地文件系统绝对目录


传入系统的绝对路径的话是不错,这个吸取一下。而且程序也会稍微简单一点。
1 楼 langyu 2011-10-05  
还不错,鼓励下,如果把那个递归抽取出来就更好了。

还有,一般这样的需求不是传入项目名,而是传入项目的本地文件系统绝对目录

相关推荐

    java 统计代码行数

    在Java编程语言中,统计代码行数是一项常见的需求,它可以帮助...总的来说,通过Java实现代码行数统计是一个涉及文件操作、文本解析和条件判断的过程。在实践中,可以根据具体需求进行定制,以满足不同项目的统计要求。

    代码行数统计工具

    标题提到的“代码行数统计工具”是专门用于计算源代码文件中行数的实用程序,适用于各种项目。这种工具能够帮助开发者、项目经理和质量保证人员了解项目的整体状况,进行进度跟踪、资源规划和复杂性分析。 代码行数...

    java写的源代码行数统计器.

    在软件开发中,行数统计有时被用作衡量项目规模或工作量的一个指标,尽管这并不是非常精确,但对初步评估或比较项目大小有所帮助。 描述中的“界面美观,功能实用”意味着该统计器不仅提供了基本的代码行数统计功能...

    java代码行数统计源码

    总之,"java代码行数统计源码"提供的工具是一个实用的开发辅助程序,它综合运用了Java的文件操作、源代码解析、数据处理和可能的用户界面设计等多个技术领域,为开发者提供了一种量化评估项目规模的方式。...

    java统计源码行数

    4. `lineCount_fat.jar`:根据文件名,这可能是实现行数统计功能的打包JAR文件,可以直接运行来统计源码行数。 5. `.project`:这是Eclipse项目的元数据文件,包含了项目类型、构建配置等信息。 6. `msyh.ttc`:这是...

    代码统计工具 可统计项目行数

    可用于对VC++、C++ Builder、Delphi、VB、C/C++、ASM、Java、C#、SQL 等程序源码进行详细的统计,可以准确的分析出程序中代码行、注释行和空白行的行数。程序会自动根据你选择的文件类型选择相应的统计方式,并将...

    java代码行数统计.zip

    Java代码行数统计工具是一种实用程序,它可以帮助开发者量化他们的工作量,跟踪项目进度,以及进行代码质量分析。这个zip文件包含的工具专门设计用来计算Java源代码中的行数,提供了一个直观的方式来了解代码库的...

    java代码行数统计工具

    IrisCodeCounter是一个轻量级的实用程序,旨在帮助开发者快速地计算项目中的源代码行数。通过这个工具,你可以得到关于项目整体规模的直观数据,这对于项目管理和团队协作具有重要意义。以下是一些关键知识点: 1. ...

    统计java代码行数

    在Java项目中,一个类通常代表一个独立的功能单元或对象。 统计Java代码行数的方法有很多种,这里我们将介绍手动统计和使用工具自动统计两种方式。 1. **手动统计**: - 打开`mypro.rar`压缩包,解压后找到包含...

    代码行数统计器(html,java,c#,c++,c)

    SCounter.exe这个文件很可能是该代码行数统计器的可执行程序,用户只需运行它并指定待分析的源代码文件,就可以获取各个编程语言的代码行数统计报告。这种工具通常会扫描文件,识别语言特定的语法结构来区分代码、...

    万能源代码行数统计器

    总的来说,"万能源代码行数统计器"是一个强大的工具,能够帮助开发者快速获取项目代码量的信息,从而更好地进行项目管理和优化。无论是用于个人项目还是团队协作,它都能提供重要的参考数据。同时,其支持多种编程...

    程序源代码行数统计工具

    程序源代码行数统计工具是一种实用的软件开发辅助工具,主要用于量化分析代码库的规模。在软件工程中,代码行数(LOC,Lines of Code)常被用作衡量项目复杂度和工作量的一个指标,虽然它并非完美的度量标准,但仍然...

    日文版的代码行数统计,只适用日文环境

    在压缩包内的文件"Cmtw.exe"很可能就是这个日文版的代码行数统计工具的可执行程序。通常,.exe文件是Windows操作系统下的可执行程序,用户可以直接运行以启动工具,无需安装额外的环境或组件。 总的来说,这个工具...

    SourceCounter代码行数统计

    总的来说,SourceCounter是一款强大而实用的代码统计工具,它简化了代码行数统计的过程,为软件开发团队提供了有价值的数据参考,有利于项目的规划、管理与优化。无论是个人开发者还是大型团队,SourceCounter都能...

    代码行数统计小工具

    代码行数统计小工具是一款专为开发者设计的实用软件,主要功能是快速、准确地统计项目中的源代码行数。这个工具在软件开发过程中尤为重要,因为它可以帮助开发者了解项目的规模,评估工作量,以及进行代码质量分析。...

    java写的源代码行数统计器

    Java编写的源代码行数统计器是一款用于计算项目中源代码行数的工具,它具有用户友好的界面和高精度的统计能力。该工具的主要功能是帮助开发者或团队管理者快速了解项目的规模,评估代码复杂性,以及跟踪项目的发展...

Global site tag (gtag.js) - Google Analytics