//统计workspace代码行数
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class CountLineNum2 {
private static int countAll = 0;
private static Scanner sc;
private static BufferedReader br;
private static String line;
public static void main(String[] args) throws IOException {
System.out.println("请输入一个文件或文件路径");
sc = new Scanner(System.in);
File input = new File(sc.nextLine());
if (!input.exists()) {// 不存在
System.out.println("你输入的路径或文件不存在");
} else if (input.isFile()) {// 是文件
System.out.println("这个文件的代码行数: " + countNum(input));
} else if (input.isDirectory()) {// 是文件夹
countDire(input);
}
System.out.println("总代码: " + countAll);
}
/**
* 输入文件夹统计代码行数
*/
private static void countDire(File input) throws IOException {
File[] listFiles = input.listFiles();
if (listFiles != null) {
for (File file : input.listFiles()) {// 列出文件夹中的文件 或 文件夹
if (file.isFile()
&& (file.getName().endsWith(".java"))) {// 如果是文件
System.out.println(countNum(file) + "行 : " + file.getName());
countAll += countNum(file);
} else if (file.isDirectory() && !file.isHidden()) {// 文件夹
countDire(file);
}
}
}
}
/**
* 统计单个文件代码行数
*/
private static int countNum(File file) throws IOException {
int num = 0;
br = new BufferedReader(new FileReader(file));
line = "";
while ((br.readLine()) != null) {
num++;
}
return num;
}
}
|