【java IO File】统计项目代码总共多少行
统计项目代码总共有多少行
思想:
1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹
2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件
3.迭代方法:是文件夹,则进入文件夹子层,将满足条件的文件与文件夹保存在数组中
是文件,则计算+=行数
代码如下:
package com.sxd.test.util; import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.nio.file.Files;
import java.util.HashSet;
import java.util.Set; import org.junit.Test; public class ReadLines4Product { private Set<String> filesName = new HashSet<>();//文件夹名称
private Set<String> fileType = new HashSet<>();//文件类型
private int lines=0;//总行数
@Test
public void readLines(){
//将不需要计算入源码行数的 文件夹名字 存储起来
filesName.add("target");
filesName.add(".svn");
filesName.add(".settings");
filesName.add("test");
filesName.add("bootstrap");
filesName.add("images");
filesName.add("layer");
filesName.add("lib");
filesName.add("META-INF");
filesName.add("skin");
filesName.add("temp");
filesName.add("upload"); //将需要计算入源码行数的文件类型 后缀 存储起来
fileType.add(".java");
fileType.add(".css");
fileType.add(".jsp");
fileType.add(".xml");
fileType.add(".js");
fileType.add(".properties"); //查询的根路径
File file = new File("F:/workspace2/biologyInfo");
forLines(file);//调用迭代方法 System.out.println("行数"+lines);
} /**
* 用来迭代的方法
* @param file
*/
public void forLines(File file){
if(file.isDirectory()){//是----文件夹
File[] files = file.listFiles(new FilenameFilter() {//返回true,即为满足条件的文件或者文件夹 ,保存在文件数组中
@Override
public boolean accept(File file, String name) {
if(filesName.contains(name)){ //如果文件夹的名字符合集合内的任何一个,则排除
return false;
}else if(name.lastIndexOf(".") != -1 && fileType.contains(name.substring(name.lastIndexOf("."))) || new File(file,name).isDirectory()){
//如果file文件名中包含. 则是文件,否则是文件夹 && 并且文件后缀是包含于文件类型集合
return true;
}
return false;
}
});
//循环File[]数组
for (File f : files) {
forLines(f);
}
}else{//是----文件
try {
lines += Files.lines(file.toPath()).count();
} catch (IOException e) {
e.printStackTrace();
}
} }
}
【java IO File】统计项目代码总共多少行的更多相关文章
- java.io.File实战
There are many things that can go wrong: A class works in Unix but doesn't on Windows (or vice versa ...
- Java IO file文件的写入和读取及下载
一.FileWriter 和BufferedWriter 结合写入文件 FileWriter是字符流写入字符到文件.默认情况下,它会使用新的内容代替文件原有的所有内容,但是,当指定一个true值作为F ...
- 33.JAVA编程思想——JAVA IO File类
33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ...
- [java]借助java.io.File类,完成文件批量改名
列出某目录下的所有文件,将文件改名,借助java.io.File一个类就可以完成.大家可以发现,代码中的具体方法都是File一个类的. 另外要注意的是,File的全路径名,路径是一致的,父路径其实是文 ...
- 使用PYTHON统计项目代码行数
目录 一 使用PYTHON统计项目代码行数 二 应用实例 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 使用PYTHON统计项目代码行数 遇到一个非常小的需求:统计一个项目里头的各类源代码 ...
- IO:File类(java.io.File)
public class File extends Object implements Serializable, Comparable<File> 构造方法: public File(S ...
- java.io.file
package cn.edu.tongji.cims.wade.system; import java.io.*; public class FileOperate { pub ...
- java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)
java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io. ...
- java.io.File类
java.io.File类 1.凡是与输入.输出相关的类.接口等都定义在java.io包下 2.File是一个类.能够有构造器创建其对象.此对象相应着一个文件(.txt .avi .doc .ppt ...
随机推荐
- nginx 原理&知识
2015年6月4日 17:04:20 星期四 发现两个关于nginx原理的系列文章, 非常好 http://blog.sina.com.cn/s/blog_6d579ff40100wi7p.html ...
- xdebug安装
sudo apt-get install php-pearsudo apt-get install php5-devsudo pecl install xdebug 下载安装编译完后,在php.ini ...
- Greedy:Cow Acrobats(POJ 3045)
牛杂技团 题目大意:一群牛想逃跑,他们想通过搭牛梯来通过,现在定义risk(注意可是负的)为当前牛上面的牛的总重量-当前牛的strength,问应该怎么排列才能使risk最小? 说实话这道题我一开始给 ...
- 针对Xcode的警告忽略消除处理
一.问题描述 html代码如下 <html> <head> <meta charset="utf-8"/> <title>我的网页& ...
- CCF 最优配餐 (BFS)
问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务.随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题. 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的 ...
- POJ 3597 Polygon Division (DP)
题目链接 题意:把一个正多边形分成数个三角形或者四边形,问有多少种方案. 题解: 如果分出的全为三角形的话,那就是正多边形三角剖分问题.它的结果就是Catalan数.现在也可以划分出四边形的话,可以采 ...
- PHP工厂模式的研究
工厂方法模式 把 创造者类 和要生产的 产品类 分离.创建者是一个工厂类,其定义了产品生产的类方法.一般情况下,创建者类的每个子类实例化一个相应的产品子类. 下面是单个产品的实现代码: <?ph ...
- oracle学习不错的网站
http://oracle-base.com/articles/linux/rlwrap.php
- 访问javaweb服务器sessionid存放问题
sessionid存放在cookies里面,key是JSESSIONID
- Java多线程---同步与锁
一,线程的同步是为了防止多个线程访问一个数据对象时,对数据造成的破坏. 二.同步和锁定 1.锁的原理 Java中每个对象都有一个内置锁. 当程序运行到非静态的synchronized同步方法上时,自动 ...