黑马程序员技术交流社区

标题: 一个关于每天代码量计算的一个简单程序 [打印本页]

作者: ancheng    时间: 2016-9-16 11:57
标题: 一个关于每天代码量计算的一个简单程序
[Java] 纯文本查看 复制代码
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Calendar;
import java.util.Scanner;
/**
*
* @author AnCheng
*
*/
public class NumberOfLinesOfCode {

        private static long count = 0L;
        private static int year = Calendar.getInstance().get(Calendar.YEAR);
        private static int day = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);

        public static void main(String[] args) throws IOException {
                File file = inputPath();
                if (file.isFile()) {
                        if (file.getName().endsWith(".java")) {
                                int num = lineCount(file);
                                System.out.println(file.getName() + "      :" + num + "行代码!");
                        } else {
                                System.out.println("该文件不是java源代码文件!");
                        }
                } else {
                        if (file.isDirectory()) {
                                fileDir(file);
                                System.out.println("今天一共写了:" + count + "行代码!");
                        }
                }
        }

        private static File inputPath() {
                File file = null;
                Scanner sc = new Scanner(System.in);
                while (true) {
                        System.out.println("请输入工作空间所在盘符路径:");
                        String line = sc.nextLine();
                        file = new File(line);
                        if (file.exists()) {
                                break;
                        } else {
                                System.out.println("\n输入的目录不存在!请重新输入:");
                        }
                }
                sc.close();
                return file;
        }

        private static int lineCount(File file) throws IOException {
                FileReader fr = new FileReader(file);
                int number = 0;
                BufferedReader reader = new BufferedReader(fr);
                String line = "";
                while ((line = reader.readLine()) != null) {
                        if (line.length() != 0) {
                                number++;
                        }
                }
                reader.close();
                return number;
        }

        private static void fileDir(File file) throws IOException {

                try {
                        File[] files = file.listFiles();
                        // System.out.println(file.getAbsolutePath());
                        // System.out.println(files);
                        if (files != null) {
                                for (File file2 : files) {
                                        if (file2.isDirectory() && !file2.isHidden()) {
                                                fileDir(file2);
                                        }
                                        if (file2.isFile() && file2.getName().endsWith(".java")) {
                                                Calendar c1 = Calendar.getInstance();
                                                c1.setTimeInMillis(file2.lastModified());
                                                int year1 = c1.get(Calendar.YEAR);
                                                int day1 = c1.get(Calendar.DAY_OF_YEAR);
                                               
                                                if ((year == year1) && (day == day1)) {
                                                        int num = lineCount(file2);
                                                        count += num;
                                                        System.out.println("该源文件有    " + num + " 行代码 : " + file2.getName() + "\t\t路径为:" + file2.getAbsolutePath());
                                                }

                                        }
                                }
                        }
                } catch (Exception e) {

                }
        }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2