代码行数的统计

/**
 * 代码行数统计
 * @author ThinkGem
 * @version 2014-7-22
 */
public class CodeCounter {

    /**
     * 代码行数统计
     */
    public static void main(String[] args) {
        String file = CodeCounter.class.getResource("/").getFile();
        String path = file.replace("webapp/WEB-INF/classes/", "");//想要统计哪个文件夹里面的文件,就把路径替换成相对应的即可。

        ArrayList<File> al = getFile(new File(path));
        for (File f : al) {
            if (f.getName().matches(".*\\.java$")){ // 匹配java格式的文件
                count(f);
                System.out.println(f);
            }
        }
        System.out.println("统计文件:" + files);
        System.out.println("代码行数:" + codeLines);
        System.out.println("注释行数:" + commentLines);
        System.out.println("空白行数:" + blankLines);
    }
    
    static long files = 0;
    static long codeLines = 0;
    static long commentLines = 0;
    static long blankLines = 0;
    static ArrayList<File> fileArray = new ArrayList<File>();
    
    /**
     * 获得目录下的文件和子目录下的文件
     * @param f
     * @return
     */
    public static ArrayList<File> getFile(File f) {
        File[] ff = f.listFiles();
        for (File child : ff) {
            if (child.isDirectory()) {
                getFile(child);
            } else
                fileArray.add(child);
        }
        return fileArray;

    }

    /**
     * 统计方法
     * @param f
     */
    private static void count(File f) {
        BufferedReader br = null;
        boolean flag = false;
        try {
            br = new BufferedReader(new FileReader(f));
            String line = "";
            while ((line = br.readLine()) != null) {
                line = line.trim(); // 除去注释前的空格
                if (line.matches("^[ ]*$")) { // 匹配空行
                    blankLines++;
                } else if (line.startsWith("//")) {
                    commentLines++;
                } else if (line.startsWith("/*") && !line.endsWith("*/")) {
                    commentLines++;
                    flag = true;
                } else if (line.startsWith("/*") && line.endsWith("*/")) {
                    commentLines++;
                } else if (flag == true) {
                    commentLines++;
                    if (line.endsWith("*/")) {
                        flag = false;
                    }
                } else {
                    codeLines++;
                }
            }
            files++;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                    br = null;
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

 

转载于:https://www.cnblogs.com/fengwenzhee/p/6955400.html

### 回答1: FPGA代码行数统计是指对FPGA的设计代码进行计数和统计,以了解设计的规模和复杂程度。FPGA是一种可编程逻辑器件,可以根据需求进行配置和重新编程,因此设计代码行数对于了解FPGA设计的复杂性和工作量具有重要意义。 FPGA设计代码可以使用不同的编程语言进行编写,常见的有VHDL(VHSIC硬件描述语言)和Verilog等。在进行代码行数统计时,可以通过各种编程开发工具或者简单的文本编辑器实现。 要进行FPGA代码行数统计,首先需要打开设计代码文件。然后,使用计数工具或者功能强大的文本编辑器的统计功能,可以方便地统计代码行数。可以统计代码行数、空白行数、注释行数和实际有效代码行数等。 FPGA设计代码可以较大地分为模块化代码和顶层代码两种。模块化代码是FPGA设计中的模块和组件,每个模块通常都有自己的代码文件。顶层代码是FPGA设计的主控制代码,负责各个模块的连接和协调。对于模块代码,可以逐个打开文件进行行数统计;对于顶层代码,需要统计所有相关文件的行数。 通过统计FPGA设计的代码行数,可以更好地了解设计的规模和复杂程度,从而更好地组织和管理设计过程。代码行数统计也可以与项目进度和工时估算相结合,为项目管理提供参考。此外,代码行数统计还可以用于做设计质量的评估和比较,判断设计的精简性和可维护性。 总之,FPGA代码行数统计是一项重要的设计管理和质量评估工作,可以帮助了解设计的复杂性和工作量,并且在项目管理中起到指导和参考的作用。 ### 回答2: FPGA代码行数统计是指对FPGA设计中的代码文件进行统计分析,得出代码行数信息。FPGA代码行数统计对于设计工程师来说非常重要,可以帮助他们评估设计的规模、复杂度和实现难度。 FPGA设计中的代码括硬件描述语言(如VHDL、Verilog等)代码和约束文件。第一步是将所有的代码文件收集起来,括顶层模块和子模块的代码文件。然后,可以使用代码编辑器或命令行工具对代码进行统计。 在代码行数统计中,通常括以下几种指标: 1. 总行数代码文件中的所有行数括空行和注释行。 2. 有效代码行数代码文件中的有效代码行数,即排除空行和注释行后的行数。有效代码是实际执行操作和逻辑的行。 3. 注释行数代码文件中的注释行数,可以帮助理解代码的功能和设计意图。 4. 空行数代码文件中的空行数,用于提高代码的可读性。 通过对代码行数统计,设计工程师可以了解到设计的规模和复杂度。行数统计还可以帮助设计工程师评估设计进度和实现难度。此外,统计的结果还可以作为代码维护和优化的依据,有助于优化代码的可读性和性能。 总之,FPGA代码行数统计是设计工程师在FPGA设计过程中的一项重要工作,通过统计代码行数,可以对设计的规模、复杂度和实现难度有一个直观的了解,为后续的设计工作提供依据。 ### 回答3: FPGA(Field Programmable Gate Array)是一种可编程逻辑电路器件,用户可以通过编程实现不同的电路功能。在FPGA设计过程中,代码行数统计是一项很重要的任务,它可以帮助设计人员评估设计的规模、复杂度和开发工作量。 要进行FPGA代码行数统计,首先需要使用的是一个文本编辑器,如Vim、Notepad++等。其次,我们需要将FPGA设计的代码文件打开,并浏览代码文件中的内容。代码行数统计可以按下面的步骤进行: 1. 打开代码文件:通过文本编辑器打开FPGA设计的代码文件。 2. 遍历代码文件:逐行读取代码文件的内容,并计算出每一行的字符数。 3. 忽略注释行:注释行通常不含实际的代码,我们可以通过识别注释符号(如“//”、“/*”等)来跳过这些行。 4. 统计有效代码行数:将不含注释的代码行累加起来,就可以得到有效的代码行数。 5. 结果输出:将得到的代码行数输出到一个统计结果文件中。 在进行代码行数统计时,需要注意以下几点: 1. 一行可能含多个语句:在某些情况下,一行代码中可能含多条语句,例如使用分号(;)分隔的多个语句。在统计过程中,需要对这种情况进行处理,确保每一行只统计为一行代码。 2. 排除空行:空行通常不含任何代码统计行数可能会导致误差。因此,在统计过程中,需要排除空行,只统计含有效代码的行。 3. 考虑复杂度因素:代码行数统计并不完全反映设计的复杂度,还应该考虑各种其他因素,如模块数量、电路连接等。 通过以上步骤,我们可以实现对FPGA设计代码行数的简单统计代码行数统计可以让设计人员更好地了解设计的规模和复杂度,有助于进行工作量评估和项目管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值