/**
* 统计项目中一共多少行代码
*/
public class CountLine {
private double sumLine = 0 ;
public File getRootFolder(String path) {
File file = new File(path);
if(file.exists()){
return file;
}else{
try {
throw new FileNotFoundException();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
return null;
}
public void getCountLines(File srcFile) {
File[] files = srcFile.listFiles();
for(int i=0; i<files.length; i++){
File file = files[i];
if(file.isDirectory()){
getCountLines(file);
}else{
sumLine += countFileLines(file);
}
}
}
public void getCountLines(String projectSrcPath){
File srcFile = getRootFolder(projectSrcPath);
getCountLines(srcFile);
}
private int countFileLines(File file) {
InputStream is = null ;
InputStreamReader isr = null;
try {
is = new FileInputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
isr = new InputStreamReader(is,"UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
BufferedReader br = new BufferedReader(isr);
String buffer = null ;
int lines = 0;
try {
while((buffer = br.readLine())!=null){
if(!("".equals(buffer.trim()))){
lines++;
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("文件:"+file.getPath()+",行数为:"+lines);
return lines;
}
public double getSumLine() {
return sumLine;
}
public void setSumLine(double sumLine) {
this.sumLine = sumLine;
}
}
转载于:https://my.oschina.net/u/185335/blog/83553