用java的io做一个代码计数器,一个基于java实现的代码计数器

本文介绍了一个使用Java开发的小程序,通过GUI界面实现C语言文件的字符、单词和行数统计,包括注释行占比。主要使用了BufferedReader进行文件操作,并利用自定义类进行逻辑判断。适用于Java 1.8环境,跨平台运行。
摘要由CSDN通过智能技术生成

5e2958ec4c265c9792170be52dbed14f.jpg

一个简单小程序的java代码

首先说一下任务需求:是一个代码计数器,通过这个计数器,我们可以清楚的判断一个c语言文件中有多少个字符,多少个单词以及一共多少行、注释行等等信息。

工具使用:

开发工具我们选用,在使用这个工具之前,我们先安装一个插件,这个插件叫做,通过这个插件我们可以轻松的使用gui来编辑,拖动组件,轻松经行GUI编程。效果如下:

一个简易的GUI界面也如图,这里要说明一下,我们的jdk版本是1.8的,1.9刚出没多久,不建议大家使用,所以在这里我们就使用稳定的1.8就好了。

功能模块展示

开始界面:

点击选择文件就可以选择你要选取的c程序文件,当然仅限于c程序文件,如果不是,会进行提示报错。在这里我们随便选取得一个文件,结果显示:

会有提示,要你重新上传。或者给你警告告诉你,这样会存在风险,慎重考虑。

还做了一系列的逻辑判断,保证这个文件是可行的,之后贴代码再看。这里不多做解释。最后来一张图进行功能演示,选取到一个合适的文件后,便可以自动进行统计判断了。

在这里还有一个完全的统计,对行数的统计。即:注释行占用了多少,占用整个文件中行数的百分比。之后点击退出便可退出这个小程序。

代码逻辑说明

这里用到了统计字符数,统计单词数量,统计行数,统计注释行等说明。统计的方法逻辑很简单,就是把对这整个文件进行IO操作,使用()方法,读取出来,进行判断,相关代码如下:

对文件的操作,已经封装成了一个Util的工具类。来我们先看看代码结构,由于是个小程序,我也就没太多的进行分层。

下面对这些类进行一些说明

:对是否为注释行进行判断等逻辑

文件操作的工具类

Line\行数,字符的实体类

Main:程序的主界面,GUI

:具体统计类

行数的统计:

BufferedReaderreader=wj.gerReader(fileName);Stringliner=null;Lineline=newLine();Annotationlj=newAnnotation();while((liner=reader.readLine())!=null){if(lj.isNull(liner)){line.setKhLine(line.getKhLine()+1);line.setWlhLine(line.getWlhLine()+1);}elseif(lj.simpleNote(liner)){line.setZshLine(line.getZshLine()+1);line.setWlhLine(line.getWlhLine()+1);}elseif(lj.isCode(liner)){line.setDmhLine(line.getDmhLine()+1);line.setWlhLine(line.getWlhLine()+1);}elseif(lj.isMuNote(liner)){line.setZshLine(line.getZshLine()+1);line.setWlhLine(line.getWlhLine()+1);}}reader.close();

字符的统计:

try{BufferedReaderreader=fileUtil.gerReader(fileName);//获取一个输入输出的缓冲区Stringline=reader.readLine();StringBufferbuffer=newStringBuffer(line);while(line!=null){line=reader.readLine();buffer.append(line);}word.setCharNumber(buffer.length());line=buffer.toString();line.replaceAll(";","");String[]split=line.split("");if(split.length0){Strings=split[0];charc=s.charAt(0);if((c='A'c='Z')||(c='a'c='z')||c=='#'){//判断是否只有一个特殊符号,如果是那就不是一个单词word.setWordNumber(split.length);}}else{word.setWordNumber(0);}reader.close();//用完这个输入输出流要关闭

其中word,Line是我封装,单词跟行数的实体类。大家可自行下载源代码来看,一会儿会贴出源代码的路径。

以上就是这个小程序的关键说明,简单易懂,到了最后,各位朋友们可以将其导出成一个可运行的jar文件,这样这个程序在任何一个装了JRE的电脑上都能运行,这就是java跨平台的一大优点。具体导出方法很简单,这里不多做说明,如有兴趣的朋友们,可下载我这个小demo来玩玩。一下便是下载地址:

wc简易小程序

辛苦码字不容易,希望大家多多留言点赞。谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值