【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 ...
随机推荐
- PHP javascript cookie
2015-07-30 16:54:58 ................................cao!!!! 汉字, 邮箱的@符号 容易出错 PHP setcookie 的时候, 不要url ...
- ACM/ICPC 之 双向链表_构造列表-模拟祖玛 (TSH OJ-Zuma(祖玛))
这一题是TsingHua OJ上的一道题目,学堂在线的一位数据结构老师的题目(原创),所以我直接把题目先贴下来了,这道题对复习双向链表很有帮助,而且也对数据结构中List,也就是对列表的回顾也是很有帮 ...
- Java for LeetCode 218 The Skyline Problem【HARD】
A city's skyline is the outer contour of the silhouette formed by all the buildings in that city whe ...
- pgbouncer介绍
一.Pgbouncer 的介绍 Pgbouncer是一个针对PostgreSQL数据库的轻量级连接池,任何目标应用都可以把 pgbouncer 当作一个 PostgreSQL 服务器来连接,然后pgb ...
- NHibernate实战详解(一)领域模型设计
关于NHibernate的资料本身就不多,中文的就更少了,好在有一些翻译文章含金量很高,另外NHibernate与Hibernate的使用方式可谓神似,所以也有不少经验可以去参考Hibernate. ...
- C++基础(纯虚函数与抽象类)
C++基础之纯虚函数与抽象类 引言 纯虚函数在C++编程中的地位很重要,其关联到了设计模式中"接口"的概念. 语法 纯虚函数的语法: 1. 将成员函数声明为virtual 2. ...
- 关于java中Double类型的运算精度问题
标题 在Java中实现浮点数的精确计算 AYellow(原作) 修改 关键字 Java 浮点数 精确计算 问题的提出:如果我们编译运行下面这个程序会看到什么?publi ...
- 【leetcode】Rotate List(middle)
Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...
- 【XLL API 函数】 xlFree
用于释放使用 Excel4,Excel4v,Excel12,Excel12v 分配的 XLOPER/XLOPER12 占用的内存资源. xlFree 函数释放辅助内存和重置指针为NULL但不释放XLO ...
- asp.net 图片下载
string fileName = "123.jpg";//图片名字 string filePath = Server.MapPath(&qu ...