使用BufferedReader 的readLine方法來計算自己寫的代碼總行數
public class Demo {
//因為要再靜态方法中使用該變量,是以定義為靜态,此變量用來存儲java代碼行數
static long count;
public static void main(String[] args) {
//調用getSum方法指定需要查詢的代碼在本地存儲的位置,這裡放的是絕對路徑
System.out.println("寫的代碼行數:"+getSum(new File("D:\\myself\\study\\code")));
}
public static long getSum(File f) {
//獲得目前路徑下的所有檔案夾
File[] arr = f.listFiles();
//判斷目前路徑不為空
if (arr!=null) {
//變量目前路徑的所有檔案
for (File file : arr) {
//如果類型屬于檔案并且檔案的字尾名為“java”
if (file.isFile() && file.getName().endsWith("java")) {
try {
//建立字元緩沖輸入流對象,指定源檔案路徑
BufferedReader br = new BufferedReader(new FileReader(file));
//當讀取一行後java代碼行數+1
while (br.readLine()!=null) {
count++;
}
} catch (Exception e) {
//若是程式出現異常則進行捕獲并在控制台列印異常資訊
System.out.println("程式出現異常,異常資訊:"+e.getMessage());
}
}
//如果目前是檔案夾則再次調用getSum方法進行判斷,直到讀完指定源檔案路徑下的所有檔案夾及其所有子檔案
if (file.isDirectory()) {
getSum(file);
}
}
}
//将最終的結果傳回
return count;
}
}
注意:運作此檔案讀取的是java檔案,需要在本地中設定可檢視檔案字尾名
