如何使用Java简单实现一个代码行数统计器
程序员文章站
2022-06-28 17:47:46
哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行。先附上实现代码吧!package InOutStream;import java.util.* ;import java.io.* ;class codeCount {private static int count ; //统计总行数private static int countCPP ;//CPPprivate st...
哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行。
先附上实现代码吧!
package InOutStream;
import java.util.* ;
import java.io.* ;
class codeCount {
private static int count ; //统计总行数
private static int countCPP ;//CPP
private static int countJAVA ;//java
private static int countPY ;//python
private String path ; //用于接收用户输入保存代码的文件夹的路径
private int reading(String path) throws Exception { //该函数用来统计一个代码文件的行数
FileReader reader = new FileReader(path) ;
BufferedReader buffer = new BufferedReader(reader) ;
int count = 0 ;
while(buffer.readLine()!=null) {
count ++ ;
}
buffer.close() ;
reader.close() ;
return count ;
}
private void caculate(String nowpath) throws Exception{//计数函数
File nowfile = new File(nowpath) ;
if (nowfile.isFile()) {
if (nowpath.endsWith(".cpp")) {
int sum = reading(nowpath) ;
countCPP += sum ;
count += sum ;
}
else if (nowpath.endsWith(".py")) {
int sum = reading(nowpath) ;
countPY += sum ;
count += sum ;
}
else if (nowpath.endsWith(".java")) {
int sum = reading(nowpath) ;
countJAVA += sum ;
count += sum ;
}
else {
System.out.println(nowpath.substring(nowpath.indexOf("."))+":该类型文件不属于代码文件或该代码文件统计功能正在开发中,敬请期待!");
}
}
else { //如果这个路径表示的是一个文件夹,则执行递归操作
String []filesset = nowfile.list() ;
for (String i:filesset ) {
String newpath = nowpath + nowfile.separator + i ;//合成路径
caculate(newpath) ;
}
}
}
public codeCount(String src) {
path = src ;
}
public static int getLinesCPP() {
return countCPP ;
}
public static int getLinesJAVA() {
return countJAVA ;
}
public static int getLinesPY() {
return countPY ;
}
public static int getLines() {
return count ;
}
public void caculator() throws Exception { //外界包装
this.caculate(path) ;
}
public String toString() { //重写toString方法
return "统计结果如下:\n" +
"cpp行数:\n"+countCPP +
"\njava行数:\n"+countJAVA +
"\npython行数:\n"+countPY ;
}
}
public class Count{
public static void main(String []args) throws Exception {
Scanner cin = new Scanner(System.in) ;
System.out.println("请输入地址:");
String path = cin.next() ;
codeCount machine = new codeCount(path) ;
machine.caculator();
System.out.println(machine.toString());
cin.close();
}
}
实例:
我在桌面保存了一个文件夹用来保存代码:
打开后是这个样子:
取路径:
运行程序,将路径粘贴到程序之内
结果如下!!!
这就是所有代码拉!!如果你有其他什么实现方法或者意见或者建议,欢迎在评论区中提出来哦!
ps:由于我只学了c、cpp、java、python。所以代码中只针对这几种进行了统计,欢迎您修改代码来满足您的需求!!
接下来我会学习swing,到时候会尝试着把这个代码生成图形化界面。欢迎持续关注我拉!!!
谢谢阅读!!
本文地址:https://blog.csdn.net/Li_black/article/details/109558603