欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

利用Java簡(jiǎn)單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器方法實(shí)例

 更新時(shí)間:2020年11月09日 10:42:16   作者:Li_black  
這篇文章主要給大家介紹了關(guān)于如何利用Java簡(jiǎn)單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

哈嘍,我是小黑, 最近學(xué)了java的輸入輸出流后一直心癢癢,總想找一點(diǎn)事情來做,所以用java代碼來實(shí)現(xiàn)了一下統(tǒng)計(jì)代碼的所有行數(shù),看一下我上大學(xué)以來到底打了多少行。

先附上實(shí)現(xiàn)代碼吧!

package InOutStream;
import java.util.* ;
import java.io.* ;

class codeCount {
	private static int count ; //統(tǒng)計(jì)總行數(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)計(jì)一個(gè)代碼文件的行數(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{//計(jì)數(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)計(jì)功能正在開發(fā)中,敬請(qǐng)期待!");
			}
		}
		else { //如果這個(gè)路徑表示的是一個(gè)文件夾,則執(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)計(jì)結(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("請(qǐng)輸入地址:");
		String path = cin.next() ;
		codeCount machine = new codeCount(path) ;
		machine.caculator(); 
		System.out.println(machine.toString());
		cin.close();
	}
}

實(shí)例:

我在桌面保存了一個(gè)文件夾用來保存代碼:

打開后是這個(gè)樣子:

取路徑:

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

結(jié)果如下!!!

這就是所有代碼拉??!如果你有其他什么實(shí)現(xiàn)方法或者意見或者建議,歡迎在評(píng)論區(qū)中提出來哦!

ps:由于我只學(xué)了c、cpp、java、python。所以代碼中只針對(duì)這幾種進(jìn)行了統(tǒng)計(jì),歡迎您修改代碼來滿足您的需求?。?/p>

總結(jié)

到此這篇關(guān)于利用Java簡(jiǎn)單實(shí)現(xiàn)一個(gè)代碼行數(shù)統(tǒng)計(jì)器的文章就介紹到這了,更多相關(guān)Java實(shí)現(xiàn)代碼行數(shù)統(tǒng)計(jì)器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例

    Java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例

    這篇文章主要介紹了java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Java終止線程的兩種方法

    Java終止線程的兩種方法

    本文主要介紹了Java終止線程的兩種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Springboot集成JSR303參數(shù)校驗(yàn)的方法實(shí)現(xiàn)

    Springboot集成JSR303參數(shù)校驗(yàn)的方法實(shí)現(xiàn)

    這篇文章主要介紹了Springboot集成JSR303參數(shù)校驗(yàn)的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 使用Spring Cloud Feign遠(yuǎn)程調(diào)用的方法示例

    使用Spring Cloud Feign遠(yuǎn)程調(diào)用的方法示例

    這篇文章主要介紹了使用Spring Cloud Feign遠(yuǎn)程調(diào)用的方法示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Eclipse+Java+Swing+Mysql實(shí)現(xiàn)電影購票系統(tǒng)(詳細(xì)代碼)

    Eclipse+Java+Swing+Mysql實(shí)現(xiàn)電影購票系統(tǒng)(詳細(xì)代碼)

    這篇文章主要介紹了Eclipse+Java+Swing+Mysql實(shí)現(xiàn)電影購票系統(tǒng)并附詳細(xì)的代碼詳解,需要的小伙伴可以參考一下
    2022-01-01
  • java數(shù)據(jù)類型與變量的安全性介紹

    java數(shù)據(jù)類型與變量的安全性介紹

    這篇文章主要介紹了java數(shù)據(jù)類型與變量的安全性介紹,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Java實(shí)體類之間的相互轉(zhuǎn)換方式

    Java實(shí)體類之間的相互轉(zhuǎn)換方式

    這篇文章主要介紹了Java實(shí)體類之間的相互轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 詳解Spring如何解決循環(huán)引用的問題

    詳解Spring如何解決循環(huán)引用的問題

    在Spring框架中,當(dāng)兩個(gè)或多個(gè)Bean之間存在相互依賴關(guān)系時(shí),可能會(huì)導(dǎo)致循環(huán)引用的問題,循環(huán)引用指的是兩個(gè)或多個(gè)Bean之間互相依賴,形成一個(gè)循環(huán)鏈,本文將和大家一起探討Spring如何解決循環(huán)引用的問題,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • mybatis 事務(wù)回滾配置操作

    mybatis 事務(wù)回滾配置操作

    這篇文章主要介紹了mybatis 事務(wù)回滾配置操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • 如何將應(yīng)用的log4j替換成logback詳解

    如何將應(yīng)用的log4j替換成logback詳解

    無論從設(shè)計(jì)上還是實(shí)現(xiàn)上,Logback相對(duì)log4j而言有了相對(duì)多的改進(jìn)。所以下面這篇文章主要給大家介紹了關(guān)于如何將應(yīng)用的log4j換成logback的相關(guān)資料,文中介紹的很詳細(xì),需要的朋友可以參考下。
    2017-02-02

最新評(píng)論