博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【java IO File】统计项目代码总共多少行
阅读量:7113 次
发布时间:2019-06-28

本文共 2810 字,大约阅读时间需要 9 分钟。

统计项目代码总共有多少行

思想:

1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹

2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件

3.迭代方法:是文件夹,则进入文件夹子层,将满足条件的文件与文件夹保存在数组中

      是文件,则计算+=行数

 

代码如下:

1 package com.sxd.test.util; 2  3 import java.io.File; 4 import java.io.FilenameFilter; 5 import java.io.IOException; 6 import java.nio.file.Files; 7 import java.util.HashSet; 8 import java.util.Set; 9 10 import org.junit.Test;11 12 public class ReadLines4Product {13 14     private Set
filesName = new HashSet<>();//文件夹名称15 private Set
fileType = new HashSet<>();//文件类型16 private int lines=0;//总行数17 @Test18 public void readLines(){19 //将不需要计算入源码行数的 文件夹名字 存储起来20 filesName.add("target");21 filesName.add(".svn");22 filesName.add(".settings");23 filesName.add("test");24 filesName.add("bootstrap");25 filesName.add("images");26 filesName.add("layer");27 filesName.add("lib");28 filesName.add("META-INF");29 filesName.add("skin");30 filesName.add("temp");31 filesName.add("upload");32 33 //将需要计算入源码行数的文件类型 后缀 存储起来34 fileType.add(".java");35 fileType.add(".css");36 fileType.add(".jsp");37 fileType.add(".xml");38 fileType.add(".js");39 fileType.add(".properties");40 41 42 //查询的根路径43 File file = new File("F:/workspace2/biologyInfo");44 forLines(file);//调用迭代方法45 46 System.out.println("行数"+lines);47 }48 49 50 /**51 * 用来迭代的方法52 * @param file53 */54 public void forLines(File file){55 if(file.isDirectory()){
//是----文件夹56 File[] files = file.listFiles(new FilenameFilter() {
//返回true,即为满足条件的文件或者文件夹 ,保存在文件数组中57 @Override58 public boolean accept(File file, String name) {59 if(filesName.contains(name)){ //如果文件夹的名字符合集合内的任何一个,则排除60 return false;61 }else if(name.lastIndexOf(".") != -1 && fileType.contains(name.substring(name.lastIndexOf("."))) || new File(file,name).isDirectory()){62 //如果file文件名中包含. 则是文件,否则是文件夹 && 并且文件后缀是包含于文件类型集合63 return true;64 }65 return false;66 }67 });68 //循环File[]数组69 for (File f : files) {70 forLines(f);71 }72 }else{
//是----文件73 try {74 lines += Files.lines(file.toPath()).count();75 } catch (IOException e) {76 e.printStackTrace();77 }78 }79 80 }81 }
View Code

 

转载于:https://www.cnblogs.com/sxdcgaq8080/p/6022864.html

你可能感兴趣的文章
二)golang工厂模式
查看>>
融云开发漫谈:你是否了解Go语言并发编程的第一要义?
查看>>
React 教程:快速上手指南
查看>>
Python 的 heapq 模块源码分析
查看>>
Jitsi快捷安装
查看>>
区块链技术的基本特点
查看>>
阿里云容器服务DaemonSet实践
查看>>
一个游戏拨账系统的数据库结算设计
查看>>
Kafka Network层解析
查看>>
css加载会造成阻塞吗?
查看>>
由一个绝对定位引发overflow:auto滚动问题产生的关于包含块(containing block)的思考...
查看>>
CS-231N-斯坦福李飞飞机器视觉课(Cydiachen版笔记+感悟)
查看>>
推荐一个有趣的Chrome扩展程序-查看任意网站的开发技术栈
查看>>
聊聊storm TridentWindowManager的pendingTriggers
查看>>
React 解决fetch跨域请求时session失效
查看>>
翻译_只需20行代码创造JavaScript模板引擎(二)
查看>>
Blockchain和Tangle哪一个是未来?
查看>>
apicloud拉起小程序并传递参数
查看>>
虚拟机Centos6.8安装MYSQL5.7,本地Navicat连接
查看>>
简单聊聊DOM
查看>>