码迷,mamicode.com
首页 > 其他好文 > 详细

CodeCounter

时间:2017-04-21 21:37:07      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:exists   调用   stat   ace   counter   exception   catch   java   oid   

package cn.zzsxt.io2;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

/**
*统计某个文件夹下(包含子文件和文件)的所有代码的行数
* 实现思路:
* 1.获取该文件夹和子文件下的所有文件(递归)
* 2.使用BufferedReader中的readLine()读取行数据
* 技能点:
* File类的常用方法: listFiles(),isDirectory(),exist()
* 递归调用
* FileReader
* BufferedReader: readLine()
*/
public class CodeCounter {
static long count=0;
/**
* 统计指定文件下的代码行数
* @param file
* @throws IOException
*/
public static void calcCode(File file) throws IOException{
//判断文件目录是否存在
if(file.exists()){
//获取该目录下所有的子文件或子目录
File[] fs = file.listFiles();
for (File f : fs) {
//判断是否为目录
if(f.isDirectory()){
calcCode(f);//递归调用
}else{
String fileName = f.getName();
//判断文件是否为java源文件(java源文件的后缀名为.java)
if(fileName.endsWith(".java")){
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
while(br.readLine()!=null){
count++;
}
br.close();
fr.close();
}
}
}
}else{
System.out.println("你要统计的目录不存在!");
}
}

public static void main(String[] args) {
// File file = new File("D:/javacode");
File file = new File("F:/workspaces");
try {
CodeCounter.calcCode(file);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("代码总行数:"+CodeCounter.count);
}
}

CodeCounter

标签:exists   调用   stat   ace   counter   exception   catch   java   oid   

原文地址:http://www.cnblogs.com/wangkemeng/p/6745537.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!