作為一個入坑JAVA有一段時間的小白,相信很多同學都有檢視***自己到底寫了多少行程式碼***的想法。本文利用簡單的IO流可以實現這一功能:
主要原理:
利用緩衝流BufferedReader的**readLine()**方法,可以一行一行的讀取(但該方法不識別換行符,所以輸出的總行數不包括空行)。
程式碼如下:
import org.junit.Test;
import java.io.*;
public class Test {
int count;
// 測試Java工作區程式碼的行數
@Test
public void test() {
File firstFile = new File("d:/JAVA工作區"); // 這裡放的是Java工作區(workplace)的檔案目錄,就是eclipse或者IDEA的工作區目錄
System.out.println(func(firstFile));
}
// 求行數的函數
public int func(File file) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for (var i = 0; i < files.length; i++) {
func(files[i]);
}
} else {
if (file.getName().endsWith(".java")) {
BufferedReader br = null;
try {
FileReader fr = new FileReader(file);
br = new BufferedReader(fr);
int len;
char[] cbuf = new char[20];
while ((len = br.read(cbuf)) != -1) {
String str = br.readLine();
count++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
return count;
}
}
本人也是一個JAVA小白,望各位不吝賜教,留言寫下本文的不足之處或可以改進的地方,謝謝!!!