日期:2014-05-20  浏览次数:20835 次

怎么统计行数?
怎么统计一个文件夹所有的.java文件的行数,最好有代码,谢谢

------解决方案--------------------
还需要判断取得的f是文件还是目录,以及是不是java文件

可以用f.isFile()

String.lastindexof( ". ");
String.substring();

s.equal( "java ")

来判断

或用证则表达式,不过没啥必要
------解决方案--------------------
遍历文件夹阿,如果文件名为.java就打开按行读取
listFiles
public File[] listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。
如果此抽象路径名并不表示一个目录,则此方法将返回 null。否则,为目录中的每个文件或目录返回一个 File 对象数组。表示目录本身及其父目录的路径名不包括在结果中。得到的每个抽象路径名都是根据此抽象路径名,使用 File(File, String) 构造方法构造。所以,如果此路径名是绝对路径名,则得到的每个路径名都是绝对路径名;如果此路径名是相对路径名,则得到的每个路径名都是相对于同一目录的路径名。

不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。


返回:
表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组。如果目录为空,则数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。
抛出:
SecurityException - 如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String) 方法拒绝对目录进行读取访问

------解决方案--------------------
package com.file;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class FileName {
int totalCount = 0;
public void getFileName(String filePath)
throws FileNotFoundException, IOException {
try {
File file = new File(filePath);
if (!file.isDirectory()) {
if(file.getName().endsWith( ".java ")){
this.staticFileSize(file.getName());
}
} else if (file.isDirectory()) {
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File f = new File(filePath + "\\ " + filelist[i]);
if (!f.isDirectory())
if(file.getName().endsWith( ".java ")){
this.staticFileSize(file.getName());
}
else if (f.isDirectory())
getFileName(filePath + "\\ " + filelist[i]);
}
}
System.out.println( "totalCount:: "+totalCount);
} catch (FileNotFoundException e) {
}

}
public int staticFileSize(String fileName){
try {
String lineStr = null;
File file = new File(fileName);
BufferedReader in = new BufferedReader(new InputStreamReader(
new FileInputStream(file)));
lineStr = in.readLine();
while (lineStr != null) {
totalCount++;
lineStr = in.readLine();

}

} catch (Exception e) {
e.printStackTrace();
}
return totalCount;
}
public static void main(String[] args) {
String filePath = "d:\\music ";
FileName fn = new FileName();
try {
fn.getFileName(filePath);
} catch (Exception e) {
// TODO: handle exception
}


}

}