java_获取多个文件夹下所有.java源码的总行数

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class GetSourceCodeSumLine {
    /**
     * @param args
     */
    public static void main(String[] args) {

// String JavaSourceCodeDir[] = {"G:\\workspace\\...\\...\\src", "G:\\workspace\\...\\...\\src"};
        String JavaSourceCodeDir[] = { "E:\\workspace\\...\\...\\...\\src\\com" };
       
        long codeCountLine = getJavaSourceCodeCountLine(JavaSourceCodeDir);

//        ArrayList<String> JavaSourceCodeDirs = new ArrayList<String>();
////        JavaSourceCodeDirs.add("G:\\workspace\\...\\...\\src");
////        JavaSourceCodeDirs.add("G:\\workspace\\...\\...\\src");
//        JavaSourceCodeDirs.add("E:\\workspace\\...\\...\\...\\src");
//
//        long codeCountLine = getJavaSourceCodeCountLine(JavaSourceCodeDirs);

System.out.println(JavaSourceCodeDir.toString() + ":共有 "
                + codeCountLine + " 行java源代码");
    }
   
   
    public static long getJavaSourceCodeCountLine(String[] JavaSourceCodeDirs) {
        long codeCountLine = 0;
        for (String dirPath : JavaSourceCodeDirs) {
            File fl = new File(dirPath);
            if (fl.exists()) {
                codeCountLine += getJavaFileCountLine(fl);
            }
        }
        return codeCountLine;
    }
   
    public static long getJavaSourceCodeCountLine(ArrayList<String> JavaSourceCodeDirs) {
        long codeCountLine = 0;
        for (String dirPath : JavaSourceCodeDirs) {
            File fl = new File(dirPath);
            if (fl.exists()) {
                codeCountLine += getJavaFileCountLine(fl);
            }
        }
        return codeCountLine;
    }

private static long getJavaFileCountLine(File fl) {
        long javaCodeCountLine = 0;

if (fl != null && fl.exists()) {
            if (fl.isDirectory()) {
                File[] listFiles = fl.listFiles();
                for (File file : listFiles) {
                    javaCodeCountLine += getJavaFileCountLine(file);
                }
            } else if (fl.isFile() && !fl.isHidden()) {
                if (fl.getName().endsWith(".java")) {

FileReader fr = null;
                    BufferedReader br = null;
                    try {
                        fr = new FileReader(fl);
                        br = new BufferedReader(fr);
                        while (br.readLine() != null)
                            javaCodeCountLine++;
                        br.close();
                        fr.close();
                    } catch (Exception e) {
                    } finally {
                        if (fr != null) {
                            try {
                                fr.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            } finally {
                                fr = null;
                            }
                        }
                        if (br != null) {
                            try {
                                br.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            } finally {
                                br = null;
                            }
                        }
                    }
                }

}
        }
        return javaCodeCountLine;
    }
}

时间: 2024-10-27 03:20:33

java_获取多个文件夹下所有.java源码的总行数的相关文章

Java File IO 练习题:把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.In

C++如何用system命令获取文件夹下所有文件名

http://www.cplusplus.com/reference/cstdlib/system/ http://bbs.csdn.net/topics/30068943 #include <stdlib.h> 查找当前路径下文件名,并存入tmp.txt. system("dir > tmp.txt"); 查找绝对路径c:\folder下文件名,并存入tmp.txt. system("dir c:\\folder>tmp.txt"); C+

获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中)

import java.io.File; import java.io.FileFilter; import java.io.ObjectInputStream.GetField; import java.util.ArrayList; import java.util.List; public class huoquwenjian { /*获取一个想要的指定文件的集合,获取文件夹下(包含子目录的所有.java的文件对象,并存储到集合中) * 思路: * 1,既然包含子目录,就需要递归. * 2

cocos2d-x3.2下获取文件夹下所有文件名的方法

这里提供一个函数获取文件夹下所有文件名的方法,直接上代码了. 原文地址:http://blog.csdn.net/qqmcy/article/details/36184733 // // VisibleRect.cpp // Test890 // // Created by 杜甲 on 14-4-28. // // std::vector<std::string> VisibleRect::getFilePathAtVec(std::string filePath) { std::vector

C++ 获取文件夹下的所有文件名

获取文件夹下所有的文件名是常用的功能,今天再一次有这样的需求,所有就在网上查找了很多,并记下以供后用. 原文:http://blog.csdn.NET/cxf7394373/article/details/7195661 原文:http://qiaoxinwang.blog.163.com/blog/static/86096452010612139172/ 头文件:#include<io.h> 1 char * filePath = "D:\\sample"; 1 vect

PHP遍历文件夹下的文件和获取到input name的值

<?php$dir = dirname(__FILE__); //要遍历的目录名字 ->当前文件所在的文件夹//$dir='D:\PHP\wamp\www\admin\hosts\admin'; //PHP遍历文件夹下所有文件 $handle=opendir($dir."."); $arr = array();while($file=readdir($handle)){  if(is_file($file)){ if ($file != "."&

获取文件夹下所有文件(包括子文件)放在list&lt;File&gt;中

public static List<File> getAllFileList(File rootFile) { return getAllFileList(rootFile.getAbsolutePath(), null); } /** * 获取文件夹下所有文件(包括子文件) * * @param filePath * @param fileList * @return */ public static List<File> getAllFileList(String fileP

获取某文件夹下所有文件名、文件夹名、后缀名

今天在提交github时,突然觉得提交得很慢,想到github允许设置.gitignore文件进行某些后缀名的忽略,于是乎决定好好设置一下.gitimnore. 于是乎....我发现,一个很大的项目,或者一个很杂乱的文件库,很难知道这里面到底存在哪些后缀名的文件,一个文件夹一个文件夹的找又太慢,而且容易出错. 于是乎....我开始敲代码了,顺带着把获取某文件夹下所有文件名.文件夹名.后缀名这三个功能一起实现了. [来看效果] 不输入参数时或者第一个参数输入"\"时,默认为当前目录,显示

获取列表中某一个文件夹下的列表项集合(不包含子文件夹对象,也不包含子文件夹中的列表项)

RT,方法如下: 1 SPListItemCollection GetSubItemsWithoutFoldersInParrentFolder(SPFolder parrent) 2 { 3 SPList list = parrent.Item.ParentList; 4 SPQuery query = new SPQuery(); 5 query.Folder = parrent; 6 query.Query = "<Where><Eq><FieldRef Na