【java IO File】统计项目代码总共多少行

简介: 统计项目代码总共有多少行思想:1.首先将不需要迭代的文件夹,保存在集合中,不满足的就是需要迭代的文件夹2.将需要进行统计行数的代码文件保存在集合中,满足的就是需要计算文件行数的文件3.迭代方法:是文件夹,则进入文件夹子层,将满足条件的文件与文件夹保存在数组中      是文件,则计算+=行数 代码如下: 1 package com.

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

思想:

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<String> filesName = new HashSet<>();//文件夹名称
15     private Set<String> fileType = new HashSet<>();//文件类型
16     private int lines=0;//总行数
17     @Test
18     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 file
53      */
54     public void forLines(File file){
55         if(file.isDirectory()){//是----文件夹
56             File[] files = file.listFiles(new FilenameFilter() {//返回true,即为满足条件的文件或者文件夹 ,保存在文件数组中
57                 @Override
58                 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

 

相关文章
|
5月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
454 6
|
6月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
641 1
|
7月前
|
前端开发 Java API
2025 年 Java 全栈从环境搭建到项目上线实操全流程指南:Java 全栈最新实操指南(2025 版)
本指南涵盖2025年Java全栈开发核心技术,从JDK 21环境搭建、Spring Boot 3.3实战、React前端集成到Docker容器化部署,结合最新特性与实操流程,助力构建高效企业级应用。
2245 1
|
6月前
|
IDE 安全 Java
Lombok 在企业级 Java 项目中的隐性成本:便利背后的取舍之道
Lombok虽能简化Java代码,但其“魔法”特性易破坏封装、影响可维护性,隐藏调试难题,且与JPA等框架存在兼容风险。企业级项目应优先考虑IDE生成、Java Records或MapStruct等更透明、稳健的替代方案,平衡开发效率与系统长期稳定性。
429 115
|
5月前
|
Java Unix Go
【Java】(8)Stream流、文件File相关操作,IO的含义与运用
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。!但本节讲述最基本的和流与 I/O 相关的功能。我们将通过一个个例子来学习这些功能。
251 1
|
7月前
|
Java 测试技术 API
Java IO流(二):文件操作与NIO入门
本文详解Java NIO与传统IO的区别与优势,涵盖Path、Files类、Channel、Buffer、Selector等核心概念,深入讲解文件操作、目录遍历、NIO实战及性能优化技巧,适合处理大文件与高并发场景,助力高效IO编程与面试准备。
|
6月前
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
7月前
|
SQL Java 数据库连接
Java IO流(一):字节流与字符流基础
本文全面解析Java IO流,涵盖字节流、字符流及其使用场景,帮助开发者理解IO流分类与用途,掌握文件读写、编码转换、异常处理等核心技术,通过实战案例提升IO编程能力。
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
Java 大数据
解析Java中的NIO与传统IO的区别与应用
解析Java中的NIO与传统IO的区别与应用