Java實現統計程序代碼量

概述

作爲一個programer 有的時候想統計一下自己寫的代碼量有多少呢,於是就寫了一個小小的工具,統計某個目錄的代碼文件的行數,快來看看你的代碼量上10w行了嗎?

其實就是對文件目錄進行遞歸操作,遇到文件(你要統計的代碼文件後綴名),打開它統計行數。直到遍歷完成

給出簡單的代碼

public class CountCode {

	static String FileType=".cs";
	public static void main(String[] args) {
			
		File root=new File("c:\\");
		countAllFiles(root);
		System.out.println("代碼數:"+allcount);
	}
	
	private static void find(String rootFilePath,String fileName,int depth,int returnSize,boolean fuzzy,ArrayList<String> returnFiles){
		ArrayDeque<String> filePathQueue=new ArrayDeque<String>();
		filePathQueue.add(rootFilePath);
		String []fileList;
		String currentFilePath;
		String temp;
		int depthCount=1;
		while(!filePathQueue.isEmpty()){
			currentFilePath=filePathQueue.remove();
			fileList=new File(currentFilePath).list();
			if(fileList!=null){
				for(int i=0;i<fileList.length;i++){
					temp=currentFilePath+"\\"+fileList[i];
					if(compare(fileList[i], fileName, fuzzy)){
						returnFiles.add(temp);
					}
					if(returnFiles.size()==returnSize){
						break;
					}
					if(!new File(temp).isFile()){
						filePathQueue.add(temp);
					}
				}
			}
		}
		if(depthCount++==depth){
			return;
		}
	}
	
	
	private static boolean compare(String currentFileName,String fileName,boolean fuzzy){
		if(currentFileName.contains(fileName)){
			return true;
		}else{
			return false;
		}
	}

	
	static int allcount=0;
	final static void countAllFiles(File dir){  
		File[] fs = dir.listFiles();  
		for(int i=0; i<fs.length; i++)
		{   
			
			if(fs[i].isDirectory())
			{    
				try
				{     
					countAllFiles(fs[i]);    
				}
				catch(Exception e){}   
			}else
			{
				if(fs[i].getName().endsWith(FileType))
				{
					System.out.println(fs[i].getAbsolutePath());
					allcount+=count(fs[i]);
				}
			}
			
		}
			
	}
	
	public static int count(File file)
	{
		
		 int count=0;
         try {
			BufferedReader  reader = new BufferedReader(new FileReader(file));
			String tempString = null;  
			while ((tempString = reader.readLine()) != null)
			{
				count++;
			}
			reader.close();
			
		} catch (Exception e) {
			return count;
		}
         return count;
	}
}

運行結果截圖


發佈了127 篇原創文章 · 獲贊 161 · 訪問量 94萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章