简单的java代码统计程序(队列实现)
1.[文件] Crawler2.java ~ 2KB 下载(15)
/**
* 列出一个文件夹包括子文件夹下面的java文件的总代码行数
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.LinkedList;
public class Crawler2 {
private static LinkedList task = new LinkedList();
private static int count = 0;
public static void main(String[] args) {
File dir = new File("E:\\OA\\src\\cn\\oa");
task.addLast(dir);
//执行任务
executeTask();
System.out.println("共有"+count+"行");
}
/**
* 任务执行器,从队列中取出文件夹,统计其中java文件的代码的行数
*/
public static void executeTask()
{
while(task.size()>0){
//取出任务
File dir = task.removeFirst();
for(File file:dir.listFiles())
{
if(file.isFile()&&file.getName().endsWith(".java"))
{
count+=countFileLine(file);
}
else if(file.isDirectory())
{
task.addLast(file);
}
}
}
}
/**
* 统计某一个java文件有多少行
* @param file
* @return
*/
public static int countFileLine(File file)
{
int count = 0;
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(file));
while(bufferedReader.readLine()!=null)
{
count++;
}
} catch (Exception e) {
e.printStackTrace();
}finally
{
if(bufferedReader!=null)
{
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return count;
}
}