java io 随笔1

来源:互联网 发布:中国火炮技术 知乎 编辑:程序博客网 时间:2024/05/22 04:37

闲来无事,写了个程序,统计代码行数。

package com.io.reader;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.util.ArrayList;public class CodesLine2 {public static void main(String[] args) {try {long startTime=System.currentTimeMillis();ArrayList<File> list=getFileByDir(new File("XXX/src"));int totalLine=getTotalLine(list);long endTime=System.currentTimeMillis();System.out.println("行数:"+totalLine);System.out.println("耗时:"+(endTime-startTime));} catch (Exception e) {e.printStackTrace();}}/** * get a line number which is the sum of the line number of each file * @param list * @return * @throws Exception */private static int getTotalLine(ArrayList<File> list)throws Exception{int totalLine=0;for(File f:list){BufferedReader reader=new BufferedReader(new FileReader(f));while((reader.readLine())!=null){totalLine++;}reader.close();}return totalLine;}/** * get a file list which belong to the parameter of dir that is their parent directory * @param dir * @return * @throws FileNotFoundException */private static ArrayList<File> getFileByDir(File dir) throws FileNotFoundException{ArrayList<File> result=null;if(dir.isDirectory()){File[] childFiles=dir.listFiles();result=new ArrayList<File>();for(int i=0;i<childFiles.length;i++){if(!childFiles[i].exists()){throw new FileNotFoundException("this file not found!");}else{if(childFiles[i].isFile()){result.add(childFiles[i]);}else{ArrayList<File> r=getFileByDir(childFiles[i]);for(File f1:r){result.add(f1);}}}}}else{System.out.println("this dir not a directory!");}return result;}}


原创粉丝点击