遍历文件夹,获取所有的文件并统计文件的行数(Java实现)

最近突发奇想,统计最近写了多少代码,于是写了一个统计代码行数的代码:

这是过去文件递归函数,获取所有文件数目

private List fileList = new ArrayList<>();


/**
     * 通过递归一个路径获取所有文件的路径,不限深度
     * @param path
     */
    void getFiles(final String path)
    {
        File file = new File(path);
        String[] list = file.list();
        for (final String s : list) {
            File subFile = new File(file.getPath()+"\\"+s);
            if(subFile.isDirectory())
            {
                getFiles(subFile.getPath());
            }else if(subFile.isFile())
            {
                fileList.add(subFile.getPath());
            }
        }
    }

下面是统计行数的代码:

/**
     * 获取文件行数的例子
     * @param path
     * @return
     */
    public int lineNumberCounter(String path)
    {
        System.out.println("===============开始===============");
        getFiles(path);
        int sum = 0;
        LineNumberReader lineNumberReader = null;
        for (String file : fileList) {
            try {
                lineNumberReader = new LineNumberReader(new FileReader(new File(file)));
                lineNumberReader.skip(Long.MAX_VALUE);
                sum += lineNumberReader.getLineNumber();
                System.out.println("当前的文件为:"+file+"\t\t\t\t 行数为:"+lineNumberReader.getLineNumber());
                lineNumberReader = null;
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                return -1;
            } catch (IOException e) {
                e.printStackTrace();
                return -1;
            }
        }
        return sum;
    }

 

最近在网上找了比较多的资料,但是好多资料的文件名字都带有他们网站的前缀,于是也参考别人的教程写了一段代码来实现去除前缀:

// 文件重命名操作
    public final static void doRenameBatch(final String path) {

        File file = new File(path);
        if (file.isDirectory()) {
            String[] list = file.list();
            File realFile = null;
            for (String fileName : list) {
                String newName = fileName.substring(fileName.lastIndexOf("]")+ 1, fileName.length());
                realFile = new File(file.getPath() + "\\" + fileName);
                File newNameFile = new File(file.getPath() + "\\" + newName);
                System.out.println(fileName + "\t 重命名为:\t" + newName);
                realFile.renameTo(newNameFile);
            }
        }
    }

 

你可能感兴趣的:(java)