计算代码总行数

package com.lingdong.controller;

import java.io.BufferedReader;  
import java.io.File;  
import java.io.FileReader;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;

import org.apache.commons.lang3.StringUtils;  
  
/**
 * @Title CodeTotal.java
 * @Package com.lingdong.controller
 * @Description: 计算指定路径下编程文件的总行数
 * @author SEELE
 * @date 2016年9月23日 下午4:10:45 
 *
 */
public class CodeTotal {  
  
    /** 
     * @param args 
     * @throws IOException  
     */  
    public static void main(String[] args) throws IOException {  
        // TODO Auto-generated method stub  
        String path="C:\Users\SEELE\Desktop\WX\WX\Shopweb"; 
        List<File> list=total(path);  
        System.out.println("文件数量:"+list.size());  
          
        //统计代码行数  
        Integer row=0;  
          
        for (File file : list) {
            String name = file.getName();
            boolean endsWith = StringUtils.endsWith(name, "php");
            if(!endsWith){
              continue;
            }
            System.out.println(file.getName());
            FileReader fr=new FileReader(file);//创建文件输入流
            BufferedReader in=new BufferedReader(fr);//包装文件输入流,可整行读取
            String line="";
            while((line=in.readLine()) != null) {
                row++;  
            }  
        }
        System.out.println("代码行数:"+row);  
    }  
      
    public static List<File> total(String path){  
        List<File> files=new ArrayList<File>();  
        File file=new File(path);  
        File []files2=file.listFiles();  
        for (File file3 : files2) {  
            if(file3.isFile()){  
                files.add(file3);  
            }else {  
                files.addAll(files.size(), total(file3.getPath()));  
            }  
        }  
        return files;  
    }  
  
}  
原文地址:https://www.cnblogs.com/wzk1992/p/5969639.html