import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
*
* @author Mr Luo
* email 972459637@qq.com
*/
public class CodeCounter {
static long normalLines = 0;
static long commentLines = 0;
static long whiteLines = 0;
public static void main(String[] args) {
File f = new File("D:\\New folder");
File[] codeFiles = f.listFiles();
for (File child : codeFiles){
if(child.getName().matches(".*\\.java{1}quot;)){
parse(child);
}
}
System.out.println("normalLines: " + normalLines);
System.out.println("commentLines: " + commentLines);
System.out.println("whiteLines: " + whiteLines);
}
private static void parse(File child) {
BufferedReader bf = null;
boolean comment = false;
try {
bf = new BufferedReader(new FileReader(child));
String line = "";
while((line = bf.readLine()) != null) {
line = line.trim();
if(line.matches("^[\\s&&[^\\n]]*{1}quot;)){
whiteLines ++;
} else if(line.startsWith("/*") && !line.endsWith("*/")){
commentLines ++;
comment = true;
} else if (true == comment){
commentLines ++;
if(line.endsWith("*/")){
comment = false;
}
} else if(line.startsWith("//")){
commentLines ++;
} else if(line.startsWith("/*") && (line.endsWith("*/"))){
commentLines ++;
}
else{
normalLines ++;
}
}
} catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(bf != null) {
try {
bf.close();
bf = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
正则表达式 统计java文件代码的数量
最新推荐文章于 2025-07-04 09:39:00 发布
本文介绍了一个用于统计Java源文件中代码行数、注释行数及空白行数的实用工具。该工具通过解析指定文件夹内的所有.java文件,能够准确区分并统计正常代码行、注释行与空白行的数量。
962

被折叠的 条评论
为什么被折叠?



