统计代码行数

给一个文件目录,遍历该目录下的所有文件,如果是.java文件,利用字符流读取该java源文件,统计全部java文件的代码共有多少行,java文件个数有多少提示:先获取所有文件,如果文件名以java结尾则表示是Java文件。然后再计算所有Java文件的行数总合,以及Java文件的个数。

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

/**

* @ClassName: Work

* @Description: 1.统计代码行数

给一个文件目录,遍历该目录下的所有文件,如果是.java文件,利用字符流读取该java源文件,统计全部java文件的代码共有多少行,java文件个数有多少

提示:先获取所有文件,如果文件名以java结尾则表示是Java文件。然后再计算所有Java文件的行数总

合,以及Java文件的个数。

* @author LYL

* @date 2021-01-13 11:32:40

*/

public class Work {

public static void main(String[] args) {

//需要扫描统计的路径

File file = new File("C:\\Test");

String str = null;

try {

//调用scan方法并拿到返回的字符串

str = scan(file,0,0);

} catch (IOException e) {

e.printStackTrace();

}

System.out.println("扫描完毕");

String[] str2 = str.split(",");

//将返回出的字符串解析为数字

int lineNum = Integer.parseInt(str2[0]);

int fileNum = Integer.parseInt(str2[1]);

System.out.println("行数为:"+lineNum+",文件数为:"+fileNum);

}

public static String scan(File f,int LineNumber, int FileNumber) throws IOException {

int lineNum = LineNumber;

int fileNum = FileNumber;

// 将传入的File对象变成File数组

File[] lf = f.listFiles();

// 如果为空则结束这次方法。避免空指针异常

if (lf == null) {

return null;

}

// 循环遍历lf中的每个File对象

for (File f1 : lf) {

// 如果当前遍历到的这个File对象是文件夹

if (f1.isDirectory()) {

// 得到当前文件夹的路径

String path = f1.getAbsolutePath();

// 重新调用当前方法,并传入刚刚遍历到的文件夹对象,行数和文件数,并用一个String接收返回的字符串

String test = scan(new File(path),lineNum,fileNum);

String[] str2 = test.split(",");

//将拿到的返回出的字符串解析为行数和文件数

lineNum = Integer.parseInt(str2[0]);

fileNum = Integer.parseInt(str2[1]);

// 如果当前File对象是一个文件

} else {

//判断是不是java文件

if(f1.getName().endsWith(".java")) {

fileNum++;

}

// 输出当前文件的名称

//System.out.println(f1.getName());

//创建当前文件的对象

File file = new File(f1.getAbsolutePath());

FileReader fr = null;

//创建字符流

fr = new FileReader(file);

int i = 0;

while((i = fr.read())!=-1) {

Character c = (char)i;

//将读出的字符转换为字符串

String temp = c.toString();

//判断字符串中有没有换行

if(temp.contains("\n")) {

lineNum++;

}

}

//关闭字符流

fr.close();

}

}

System.out.println("lineNum = "+lineNum+", fileNum = "+fileNum);

//将行数和文件数返回

return lineNum+","+fileNum;

}

}

java代码行数_Java统计代码行数相关推荐

  1. phpstrom查看代码总行数_PHP统计代码行数的小代码

    本文实例为大家分享了PHP统计代码行数的具体代码,供大家参考,具体内容如下 想统计一下项目中一共有多少行代码,结果没找到什么好的工具,就自己写了一个. 效率不怎么样. /** * Created by ...

  2. java 同步块原理_Java同步代码块和同步方法原理与应用案例详解

    Java同步代码块和同步方法原理与应用案例详解 发布于 2020-8-7| 复制链接 摘记: 本文实例讲述了Java同步代码块和同步方法.分享给大家供大家参考,具体如下:一 点睛所谓原子性:一段代码要 ...

  3. java类静态初始化_Java静态代码块和类初始化、实例初始化过程

    1. 静态代码块 静态代码块:定义在类中方法外,使用static修饰 ①可以为类变量(静态变量)初始化 ②静态代码块在第一次使用这个类之前执行,即在类初始化时执行,且只执行一次 ③若有多个静态代码块, ...

  4. java统计在线人数_java统计当前在线数 (转)

    java统计当前在线数 (转)[@more@] package com.hnedu.stat; /** * 计算在线人数,说明: * * 在访问页面放入: * com.hnedu.stat.Onlin ...

  5. 网站底部运行时间的php代码,网站底部运行时间统计代码

    也许您和我一样,想在自己站点底部或者任意位置添加一个运行时间统计的代码,对我来说这是一个特殊的日子,值得留恋,值得铭记. 在这里我也收集并测试了部分,能有效的显示本站已运行N天,接下来上干货吧. js ...

  6. 安装51统计代码到html,51La 统计代码放到哪里??

    近期很多站长都在咨询如何在自己的站点添加统计代码,下面为大家详细介绍具体的步骤: 一.如何获取统计代码 提供免费统计的网站有很多,比如:51la.雅虎.cnzz....等等,下面就以 51la 做例子 ...

  7. 百度统计代码怎么开通,百度统计代码如何获取?怎么在网站上添加百度统计代码?

    怎么开通百度统计代码呢?百度统计可以很好的帮助站长分析网站流量动态.百度统计代码获取有两种不同方式.一种是第一次开通百度统计代码,另一种是在额外添加网站百度统计代码.下面我就来说下百度统计代码怎么开通 ...

  8. 个人所得税java程序怎么编写_java个人所得税代码.doc

    java个人所得税代码 import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.table.D ...

  9. java 多行字符串_java字符串多行写法

    有一个很长的字符串,想分成多行书写,主要为了美观. VB代码中可以将一个很长的字符串分成多行书写,例如: String str="adfasdfasdfas \ asdfasdfasdfas ...

  10. java俄罗斯方块消除算法_Java 俄罗斯方块消行算法

    Java 俄罗斯方块消行算法 2020-08-12 11:02 阅读数 9 /** * 消行得分 */ private int plusExp() { //获取地图信息 boolean[][] gam ...

最新文章

  1. 今天看到的如何做个坏男人的招数
  2. 12/12 day06
  3. python重复执行_python flask schedule重复运行 任务被重复执行问题 解决方案
  4. iOS 9音频应用播放音频之iOS 9音频播放进度
  5. apache配置,保你配置成功
  6. 由SecureCRT引发的思考和学习
  7. 不是每一个缺钱的人都能贷款!
  8. java学习(19):巩固练习
  9. python根据行名称生成二维数组
  10. 查经 民数记3章 利未人
  11. int 转 const char*
  12. http协议 文件下载原理详解
  13. matlab英文词汇,matlab中常见英文词含义
  14. HTML 前后端分离,再谈前后端分离开发和部署
  15. 儿童吹泡泡水简单配方_吹泡泡溶液配方大集合吹泡泡溶液最佳配方
  16. 物联网(工程师)+嵌入式学习路线图各个阶段
  17. 如何用excel快速实现“平均值±标准差”
  18. 60分钟教你上手PyTorch + 迁移学习
  19. zip分卷压缩的步骤_Python3实现zip分卷压缩过程解析
  20. YOLOv3训练自己的数据详细步骤

热门文章

  1. Jackson的JSON转对象,忽略不需要的字段
  2. 算法导论第三版习题及答案
  3. 算法导论(原书第三版)答案与学习笔记(一)
  4. 软件运行 计算机硬件环境,软件运行环境该怎么写
  5. MathType公式编辑器的下载安装及导入Word
  6. 【转载】斐讯K2P B1刷入金梅林固件,加koolproxy、S-S R等【V1.0尝鲜版】
  7. VB/VBA的浮点数结构
  8. TensorFlow相关教程:使用tf.data加载图片
  9. 多种嵌入式文件系统移植集合
  10. QPSK调制及MATLAB实现