看到你這個問題,感覺蠻有意思的,所以寫了個遞歸方法,可以計算出項目有多少行代碼

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比定州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式定州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋定州地區(qū)。費用合理售后完善,10年實體公司更值得信賴。
public?class?ItemCount
{
private?int?lineCount;
private?int?fileCount;
public?int?getLineCount()
{
return?lineCount;
}
public?int?getFileCount()
{
return?fileCount;
}
public?static?void?main(String[]?args)?throws?IOException
{
ItemCount?itemCount?=?new?ItemCount();
//path的值就是你的項目路徑
String?path?=?"E:\\lucene\\src";
itemCount.getItemLineNum(new?File(path));
System.out.println("該項目一共有"+itemCount.getFileCount()+"個java源文件,"+itemCount.getLineCount()+"行代碼");
}
//遞歸
public?void?getItemLineNum(File?path)?throws?IOException{
if(path.isFile()??path.getName().endsWith(".java")){
BufferedReader?br?=?new?BufferedReader(new?FileReader(path));
fileCount++;
while(br.readLine()!=null){
lineCount++;
}
System.out.println(path.getName());
br.close();
}else?if(path.isDirectory()){
File[]?listFiles?=?path.listFiles();
for?(File?file?:?listFiles)
{
getItemLineNum(file);
}
}
}
}
源代碼行數(shù)統(tǒng)計器 1.5
本軟件用于統(tǒng)計軟件工程源代碼行數(shù),可對指定的子目錄下或整個目錄樹中所有指定類型的源代碼文件進行行數(shù)統(tǒng)計。
本軟件的統(tǒng)計結(jié)果包含源代碼中的注釋行和空行,因為作者認為它們同樣也是源代碼的必要組成部分。
本軟件對 Windows 下和 Unix/Linux 下的源代碼文件都可以正確地統(tǒng)計行數(shù)。
方法一:
如果想要通過java代碼的方式來計算.java文件的行數(shù),可以通過IO來讀取,
BufferedReader的方法readLine()來按行讀取,每讀取一行,行數(shù)+1
方法二:
如果要查看.java文件的代碼行數(shù),
可以使用現(xiàn)成的IDE工具,比如ECLIPSE...
每一行的行號都有表示出來
//我寫了一個類 測試了一下 大致沒問題 你看看吧
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.RandomAccessFile;
public class GetLoc {
public static void execute(String classPath) {
if (classPath == null || "".equals(classPath)) {
System.err.println("無效的類路徑");
return;
}
File file = new File(classPath);
int total = 0; // 所有代碼總行數(shù)
int lineCount = 0;// 有效代碼總行數(shù)
int start = 0;// 多行注釋開始位置
int end = 0;// 多行注釋結(jié)束位置
//下面開始讀取文件 按行來讀 讀取時候做判斷
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String lineContent = br.readLine();
while (lineContent != null) {
if (lineContent == null) {
System.err.println("數(shù)據(jù)讀完了!");
} else {
total++;
// 判斷當前讀入的記錄行是否是無效行
lineContent = lineContent.trim();
lineCount++;
if ("".equals(lineContent)) {// 空行
lineCount--;
}
if (lineContent.startsWith("http://")) {// 單行注釋
lineCount--;
}
if (lineContent.startsWith("/*") end == 0) {// 多行注釋開頭
start = lineCount;
}
if ((lineContent.startsWith("*/") || lineContent
.endsWith("*/"))
start != 0) {
end = lineCount;
lineCount = lineCount - (end - start + 1);
end = 0;
start = 0;
}
}
lineContent = br.readLine();
}
br.close();// 一定要關閉資源
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 從路徑中分離出類名
String temp = new StringBuffer(classPath).reverse().toString();
int sp1 = temp.indexOf("/");
int sp2 = temp.indexOf("\\");
int pos = sp1 sp2 ? sp1 : sp2;//取離分隔符近的
String className = "";
if (pos != 0) {
className = temp.substring(0, pos);
className = new StringBuffer(className).reverse().toString();
}
// 拼成注釋
String result = "";
if (!"".equals(className)) {
result = "http://LOC(\"OneMatcher.java\") = " + lineCount;
}
// 加在類的尾巴上面
try {
RandomAccessFile randomFile = new RandomAccessFile(classPath, "rw");
long fileLength = randomFile.length();
randomFile.seek(fileLength);
randomFile.writeBytes(result);
randomFile.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("類文件"+className+"總共"+total+"代碼,其中有效代碼"+lineCount+"行");
}
public static void main(String[] args) {
execute("C:\\Users\\konglingzhen\\Desktop\\RandomAccessFile.java");
}
}
當前題目:java計算代碼行數(shù)據(jù),java獲取當前代碼行數(shù)
網(wǎng)頁鏈接:http://chinadenli.net/article8/dsepsip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站排名、動態(tài)網(wǎng)站、建站公司、自適應網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)