代碼量的多少不能證明程序員的能力遂赠!
該程序以Java語言編寫
以統(tǒng)計(jì)Java語言寫的項(xiàng)目代碼量為例:
public class Files {
static long whiteLine = 0;
static long comentLine = 0;
static long sormaLine = 0;
public static void main(String[] args) {
File f = new File("填寫路徑梢莽,不用具體到文件名奏黑,只要路徑下有.java文件就可以");
getChildren(f);
System.out.println("空行:"+whiteLine);
System.out.println("注釋行:"+comentLine);
System.out.println("有效行:"+sormaLine);
System.out.println("總行數(shù):"+(whiteLine+comentLine+sormaLine));
}
private static void getChildren(File file){
if(file.isFile()){
//如果為單個(gè)文件直接開始讀取行數(shù)
preas(file);
}else if(file.isDirectory()) {
//如果為文件目錄焕妙,得到目錄下的子文件以及子文件夾
File[] codeFiles = file.listFiles();
for(File child:codeFiles){
getChildren(child); //反復(fù)讀取
}
}
}
private static void preas(File f){
BufferedReader br = null;
Boolean comPd = false;
try {
br = new BufferedReader(new FileReader(f));
String readLine = null;
while((readLine = br.readLine())!=null){
readLine = readLine.trim();
if(readLine.matches("^[\\s&&[^\\n]]*$")){
whiteLine ++;
}else if(readLine.startsWith("/*")&&!readLine.endsWith("*/")){
comentLine ++;
comPd = true;
}else if(readLine.startsWith("/*")&&!readLine.endsWith("*/")){
comentLine ++;
}else if(comPd){
comentLine ++;
if(readLine.endsWith("*/")){
comPd = false;
}
}else if(readLine.startsWith("http://")){
comentLine ++;
}else{
sormaLine++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}