JAVA用IO流查看自己写了多少行程序
作为一个入坑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小白,望各位不吝赐教,留言写下本文的不足之处或可以改进的地方,谢谢!!!