计算代码总行数
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; } }