您的位置:首页 > 编程语言 > Java开发

代码行数统计java实现

2017-10-13 00:00 776 查看
摘要: 代码行数统计java实现

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

public class CodeCount {

static int count = 0;

static ArrayList<String> ignore_folder = new ArrayList<String>();
static ArrayList<String> ignore_ext = new ArrayList<String>();

static{

//忽略的文件后缀
ignore_ext.add(".jar");
ignore_ext.add(".class");
ignore_ext.add(".classpath");
ignore_ext.add(".project");

//忽略的文件夹
ignore_folder.add("resources");
ignore_folder.add("classes");
ignore_folder.add(".settings");
ignore_folder.add("META-INF");
}

static void readLineCount(File _f){
if(_f != null){
String ext = _f.getPath();
//文件后缀
for(String _ext:ignore_ext){
if(ext.endsWith(_ext)){
//System.out.println("文件后缀:"+ext);
return;
}
}
//文件夹
for(String _folder:ignore_folder){
if(ext.indexOf(_folder) > -1){
//System.out.println("文件夹:"+ext);
return;
}
}
}
//System.out.println(_f.getPath());
//定义字符流读取文件
FileReader fileReader = null;
try {
fileReader = new FileReader(_f);
}catch(IOException e){
e.printStackTrace();
}
// 从字节流中升级为字符流,方便按行读取。
BufferedReader bufferedReader = new BufferedReader(fileReader);
try {
while (bufferedReader.readLine() != null) {
count++;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fileReader != null) {
try {
fileReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return;
}

static void recursionFolder(File f){
if(f != null && !f.exists()){
System.out.println("文件夹不存在:"+f.getPath());
return;
}
for(File _f:f.listFiles()){
//是文件
if(_f.isFile()){
readLineCount(_f);
}
if(_f.isDirectory()){
recursionFolder(_f);
}
}
}

public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.println("请输入要统计代码的文件夹:");
String pfolder = s.nextLine();
System.out.println(pfolder);
File folder = new File(pfolder);
recursionFolder(folder);
System.out.println("代码总行数:"+count);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息