java代码行数_Java统计代码行数
統(tǒng)計(jì)代碼行數(shù)
給一個(gè)文件目錄,遍歷該目錄下的所有文件,如果是.java文件,利用字符流讀取該java源文件,統(tǒng)計(jì)全部java文件的代碼共有多少行,java文件個(gè)數(shù)有多少提示:先獲取所有文件,如果文件名以java結(jié)尾則表示是Java文件。然后再計(jì)算所有Java文件的行數(shù)總合,以及Java文件的個(gè)數(shù)。
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
/**
* @ClassName: Work
* @Description: 1.統(tǒng)計(jì)代碼行數(shù)
給一個(gè)文件目錄,遍歷該目錄下的所有文件,如果是.java文件,利用字符流讀取該java源文件,統(tǒng)計(jì)全部java文件的代碼共有多少行,java文件個(gè)數(shù)有多少
提示:先獲取所有文件,如果文件名以java結(jié)尾則表示是Java文件。然后再計(jì)算所有Java文件的行數(shù)總
合,以及Java文件的個(gè)數(shù)。
* @author LYL
* @date 2021-01-13 11:32:40
*/
public class Work {
public static void main(String[] args) {
//需要掃描統(tǒng)計(jì)的路徑
File file = new File("C:\\Test");
String str = null;
try {
//調(diào)用scan方法并拿到返回的字符串
str = scan(file,0,0);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("掃描完畢");
String[] str2 = str.split(",");
//將返回出的字符串解析為數(shù)字
int lineNum = Integer.parseInt(str2[0]);
int fileNum = Integer.parseInt(str2[1]);
System.out.println("行數(shù)為:"+lineNum+",文件數(shù)為:"+fileNum);
}
public static String scan(File f,int LineNumber, int FileNumber) throws IOException {
int lineNum = LineNumber;
int fileNum = FileNumber;
// 將傳入的File對(duì)象變成File數(shù)組
File[] lf = f.listFiles();
// 如果為空則結(jié)束這次方法。避免空指針異常
if (lf == null) {
return null;
}
// 循環(huán)遍歷lf中的每個(gè)File對(duì)象
for (File f1 : lf) {
// 如果當(dāng)前遍歷到的這個(gè)File對(duì)象是文件夾
if (f1.isDirectory()) {
// 得到當(dāng)前文件夾的路徑
String path = f1.getAbsolutePath();
// 重新調(diào)用當(dāng)前方法,并傳入剛剛遍歷到的文件夾對(duì)象,行數(shù)和文件數(shù),并用一個(gè)String接收返回的字符串
String test = scan(new File(path),lineNum,fileNum);
String[] str2 = test.split(",");
//將拿到的返回出的字符串解析為行數(shù)和文件數(shù)
lineNum = Integer.parseInt(str2[0]);
fileNum = Integer.parseInt(str2[1]);
// 如果當(dāng)前File對(duì)象是一個(gè)文件
} else {
//判斷是不是java文件
if(f1.getName().endsWith(".java")) {
fileNum++;
}
// 輸出當(dāng)前文件的名稱
//System.out.println(f1.getName());
//創(chuàng)建當(dāng)前文件的對(duì)象
File file = new File(f1.getAbsolutePath());
FileReader fr = null;
//創(chuàng)建字符流
fr = new FileReader(file);
int i = 0;
while((i = fr.read())!=-1) {
Character c = (char)i;
//將讀出的字符轉(zhuǎn)換為字符串
String temp = c.toString();
//判斷字符串中有沒(méi)有換行
if(temp.contains("\n")) {
lineNum++;
}
}
//關(guān)閉字符流
fr.close();
}
}
System.out.println("lineNum = "+lineNum+", fileNum = "+fileNum);
//將行數(shù)和文件數(shù)返回
return lineNum+","+fileNum;
}
}
總結(jié)
以上是生活随笔為你收集整理的java代码行数_Java统计代码行数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 美赛O奖论文翻译-2015埃博拉病毒
- 下一篇: Java学习笔记:根据Excel工资表生