JAVA學習筆記:用IO流檢視自己寫了多少行程式

2020-09-22 14:00:23

JAVA用IO流檢視自己寫了多少行程式

作為一個入坑JAVA有一段時間的小白,相信很多同學都有檢視***自己到底寫了多少行程式碼***的想法。本文利用簡單的IO流可以實現這一功能:

主要原理
利用緩衝流BufferedReader的**readLine()**方法,可以一行一行的讀取(但該方法不識別換行符,所以輸出的總行數不包括空行)。

程式碼如下:

import org.junit.Test;

import java.io.*;

public class Test {

int count;

    // 測試Java工作區程式碼的行數
    @Test
    public void test() {
        File firstFile = new File("d:/JAVA工作區"); // 這裡放的是Java工作區(workplace)的檔案目錄,就是eclipse或者IDEA的工作區目錄
        System.out.println(func(firstFile));
    }
// 求行數的函數
    public int func(File file) {
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (var i = 0; i < files.length; i++) {
                func(files[i]);
            }
        } else {
            if (file.getName().endsWith(".java")) {
                BufferedReader br = null;
                try {
                    FileReader fr = new FileReader(file);
                    br = new BufferedReader(fr);
                    int len;
                    char[] cbuf = new char[20];

                    while ((len = br.read(cbuf)) != -1) {
                        String str = br.readLine();
                        count++;
                    }
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (br != null) {
                        try {
                            br.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
        return count;
    }
}

本人也是一個JAVA小白,望各位不吝賜教,留言寫下本文的不足之處或可以改進的地方,謝謝!!!