其实就是使用递归遍历目录下所有文件
[code]
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class JavaCodeLines {
private static final String PROJECT_DIR = "C:\\workspace\\YourProj";
private static int fileNum = 0;
private static int lineNum = 0;
private static void listNext(File dir) {
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
listNext(files[i]);
} else {
// System.out.println(fs[i].getAbsolutePath());
try {
if (files[i].getName().endsWith(".java")) {
fileNum++;
BufferedReader br = new BufferedReader(new FileReader(
files[i]));
while (br.readLine() != null) {
lineNum++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws Exception {
File root = new File(PROJECT_DIR);
listNext(root);
System.out.println("Java files number: " + fileNum);
System.out.println("Java code lines: " + lineNum);
}
}[/code]
[code]
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class JavaCodeLines {
private static final String PROJECT_DIR = "C:\\workspace\\YourProj";
private static int fileNum = 0;
private static int lineNum = 0;
private static void listNext(File dir) {
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
listNext(files[i]);
} else {
// System.out.println(fs[i].getAbsolutePath());
try {
if (files[i].getName().endsWith(".java")) {
fileNum++;
BufferedReader br = new BufferedReader(new FileReader(
files[i]));
while (br.readLine() != null) {
lineNum++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) throws Exception {
File root = new File(PROJECT_DIR);
listNext(root);
System.out.println("Java files number: " + fileNum);
System.out.println("Java code lines: " + lineNum);
}
}[/code]
本文提供了一个Java程序,用于递归地遍历指定目录及其子目录下的所有.java文件,并统计这些文件的数量及总行数。
362

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



