利用Java簡單實現(xiàn)一個代碼行數(shù)統(tǒng)計器方法實例
前言
哈嘍,我是小黑, 最近學(xué)了java的輸入輸出流后一直心癢癢,總想找一點事情來做,所以用java代碼來實現(xiàn)了一下統(tǒng)計代碼的所有行數(shù),看一下我上大學(xué)以來到底打了多少行。
先附上實現(xiàn)代碼吧!
package InOutStream;
import java.util.* ;
import java.io.* ;
class codeCount {
private static int count ; //統(tǒng)計總行數(shù)
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 { //該函數(shù)用來統(tǒng)計一個代碼文件的行數(shù)
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{//計數(shù)函數(shù)
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("."))+":該類型文件不屬于代碼文件或該代碼文件統(tǒng)計功能正在開發(fā)中,敬請期待!");
}
}
else { //如果這個路徑表示的是一個文件夾,則執(zhí)行遞歸操作
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 "統(tǒng)計結(jié)果如下:\n" +
"cpp行數(shù):\n"+countCPP +
"\njava行數(shù):\n"+countJAVA +
"\npython行數(shù):\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();
}
}
實例:
我在桌面保存了一個文件夾用來保存代碼:

打開后是這個樣子:

取路徑:

運行程序,將路徑粘貼到程序之內(nèi)

結(jié)果如下!!!

這就是所有代碼拉?。∪绻阌衅渌裁磳崿F(xiàn)方法或者意見或者建議,歡迎在評論區(qū)中提出來哦!
ps:由于我只學(xué)了c、cpp、java、python。所以代碼中只針對這幾種進行了統(tǒng)計,歡迎您修改代碼來滿足您的需求??!
總結(jié)
到此這篇關(guān)于利用Java簡單實現(xiàn)一個代碼行數(shù)統(tǒng)計器的文章就介紹到這了,更多相關(guān)Java實現(xiàn)代碼行數(shù)統(tǒng)計器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java基于二分搜索樹、鏈表的實現(xiàn)的集合Set復(fù)雜度分析實例詳解
這篇文章主要介紹了Java基于二分搜索樹、鏈表的實現(xiàn)的集合Set復(fù)雜度分析,結(jié)合實例形式詳細分析了Java基于二分搜索樹、鏈表的實現(xiàn)的集合Set復(fù)雜度分析相關(guān)操作技巧與注意事項,需要的朋友可以參考下2020-03-03
Spring Boot 通過 Mvc 擴展方便進行貨幣單位轉(zhuǎn)換的代碼詳解
這篇文章主要介紹了Spring Boot 通過 Mvc 擴展方便進行貨幣單位轉(zhuǎn)換,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
詳解使用Java代碼讀取并比較本地兩個txt文件區(qū)別
這篇文章主要為大家介紹了使用Java代碼讀取并比較本地兩個txt文件區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

