|
java统计某文件或目录下指定路径的文件数量及行数
2008-12-24 16:26
import java.io.BufferedReader;
import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException;
public class StatLine {
//总行数 static int rowCount=0; static BufferedReader br; //文件类型 static String fileType; //忽略空白行 static boolean ignoreBlank; //总文件数 static int fileCount=0; public static void main(String[] args) { if(args.length==0) { System.out.println("Usage:java StatLine path fileType [ignoreBlank]"); System.out.println("用法:java StatLine 路径 文件类型 [忽略空白行]"); System.out.println("例子(Demo):java StatLine e:\\xgz\\project java 0"); System.out.println("注解:path:系统中某一路径,fileType:要统计的文件类型,ignoreBlank:1为不统计空白行 0为全部统计"); return ; } long startTime,endTime; String filePath = args[0]; fileType = args[1]; //1为忽略空白行 0不忽略 try { ignoreBlank = "1".equals(args[2])?true:false; } catch (RuntimeException e) { ignoreBlank = false; } File rootDirectory = new File(filePath); startTime = System.currentTimeMillis(); isDir(rootDirectory); endTime = System.currentTimeMillis(); System.out.println("Report:"); System.out.println("路径:"+filePath); System.out.println("类型:"+fileType); System.out.println("共"+fileCount+"个文件 "+rowCount+"行 耗时:"+(endTime-startTime)/1000+"."+(endTime-startTime) % 1000+"秒"); } //验证它是否为一个文件夹 public static void isDir(File file) { if(file.isDirectory()){ File[] files = file.listFiles(); for(int i=0;i<files.length;i++) { isDir(files[i]); } }else { fileRow(file); } } //给定一个文件输出它有多少行 public static void fileRow(File file) { if(file.getName().indexOf("."+fileType)!=-1) { ++fileCount; try { br=new BufferedReader(new FileReader(file)); while(true) { String line = br.readLine(); if(line!=null){ if(ignoreBlank) { if(!"".equals(line)){ ++rowCount; } }else { ++rowCount; } } if(line==null) { break; } } br.close(); } catch (FileNotFoundException e) { System.out.println("您所指定的文件或目录不存在"); e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } |
转载于:https://blog.51cto.com/maliujiang/755266