题目:
统计一个Java文件的有效行数。 1) 有效不包括空行 2) 不考虑代码里有多行注释的情况
package org.sh.line;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class CountingLines {
private boolean isAnnotation(String line){
if(line==null||"".equals(line)){
return false;
}
return line.startsWith("//")||(line.startsWith("/*")&&line.endsWith("*/"));
}
public int getValidJavaLines(String filename){
if(filename==null){
return 0;
}
FileReader fr = null;
BufferedReader reader = null;
int count =0;
try {
fr = new FileReader(filename);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
reader = new BufferedReader(fr);
String line = null;
try {
while((line = reader.readLine())!=null){
line = line.trim();
if(!line.isEmpty()&&!isAnnotation(line)){
count++;
}
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
reader.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return count;
}
public static void main(String[] args) {
String filePath="D://workspaces//chinatravel//src//org//chi//dao//IChProxy//IChAdminProxy.java";
CountingLines cl = new CountingLines();
int sumLines = cl.getValidJavaLines(filePath);
System.out.println(sumLines);
}
}