【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 ...
随机推荐
- Mac下DIY文件浏览器
2015-07-14 15:07:53 Mac下的finder不能浏览Linux文件目录, 一些优秀的资源管理器是收费的..... 于是想到了既然Mac的本质是类Unix, 而在windows下查看L ...
- java wait()和notify()、notifyAll()
图见<JAVA并发编程的艺术>P98-101 这三个方法都是java.lang.Object的方法,用于协调多个线程对共享数据的存取,必须在synchronized语句块中使用!这三个方法 ...
- 【leetcode】Single Number (Medium) ☆
题目: Given an array of integers, every element appears twice except for one. Find that single one. No ...
- 【jquery】字符ascii码转换函数
js 字符ascii码转换函数 字符转ascii码:用charCodeAt();ascii码砖字符:用fromCharCode(); 看一个小例子 <script> str="A ...
- iOS开发MAC下配置Svn和Git
如果你对iOS开发中的版本控制还不了解那么你可以先看看这篇(大致看一遍就ok) http://www.cnblogs.com/iCocos/p/4767692.html 关于版本控制使用起来并不难 ...
- Alcatraz安装在xcode7失败执行下面代码
1.步奏rm -rf ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins/Alcatraz.xcplugin 2.步奏 rm ...
- 使用连发互联空间+SQLyog 设置我们的数据库链接
在我使用SQLyog(小海豚)管理我的数据库的时候,主机空间为连发互联的(自己做着玩,这个便宜),遇到一些坑,自己写一下记录一下,省的下次忘记了又浪费时间. 首先你要有连发互联的空间,可以淘宝购买,连 ...
- Centos以rpm方式进行安装MySql
安装过很多次mysql了,却没好好总结过,每次安装完了都忘,下次还要重新Google,这次总结下,自己以后也有的查. 1.安装采用的的rpm包的方式,安装前要先看系统内是否安装了旧版本的MySql和m ...
- UbuntuLinux安装Mysql
1.安装Mysql5.7 方法:手动安装5.7 One: $ wget http://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb 下载 ...
- 10.11 cocoapods安装
手动安装gem 手动下载 rubygem https://rubygems.org/pages/download#formats 10.11 cocoapods安装 sudo gem install ...