代码行数统计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);
}
}
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);
}
}
相关文章推荐
- java实现统计代码行数
- 代码行数统计的Java和Python实现
- 统计java代码行数
- python实现的代码行数统计(纯代码)
- 统计Java项目代码行数
- 代码行数统计(python实现)
- 统计你写的java代码行数
- 利用正则表达式统计某个某个文件夹下所有java文件的 空格行数、注释行数、和代码行数
- Java实现统计项目代码行!
- 统计Java程序代码行数(Java)
- JAVA统计代码行数
- 统计java代码行数的代码(除注释,空行)
- 字符串处理算法(五)多线程实现代码行数统计。[风林火山]
- Java代码 统计项目的文件数量,和代码行数
- [JAVA实用应用] 项目代码行数统计器,帮助你统计项目一共有多少行代码
- 项目代码行数统计--java类统计
- 字符串处理算法(五)多线程实现代码行数统计。[风林火山]
- 统计指定文件夹下指定文件类型的行数(java实现)
- Java上机实现统计某一目录下每个文件中出现的字母个数、数字个数、空格个数及行数?
- 发一个统计项目代码行数的Java代码