用java写wordcount
Posted ye_you
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java写wordcount相关的知识,希望对你有一定的参考价值。
1.码云地址:https://gitee.com/Huan62201/events;
2.个人PSP表格
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
270 |
180 |
· Estimate |
· 估计这个任务需要多少时间 |
180 |
120 |
Development |
开发 |
580 |
400 |
· Analysis |
· 需求分析 (包括学习新技术) |
180 |
60 |
· Design Spec |
· 生成设计文档 |
40 |
30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
20 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
20 |
10 |
· Design |
· 具体设计 |
20 |
20 |
· Coding |
· 具体编码 |
180 |
200 |
· Code Review |
· 代码复审 |
30 |
40 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
90 |
60 |
Reporting |
报告 |
90 |
70 |
· Test Report |
· 测试报告 |
40 |
30 |
· Size Measurement |
· 计算工作量 |
20 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 |
30 |
|
合计 |
850 |
630 |
3、功能需求分析
WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
可执行程序命名为:wc.exe,该程序处理用户需求的模式为:wc.exe [parameter] [input_file_name]
存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下。
4. 作业详情:https://edu.cnblogs.com/campus/xnsy/2018Systemanalysisanddesign/homework/2152
5.程序设计
A:大概设计
(1):程序由主函数和方法构成。
(2):程序使用main的入口参数。
B:详细设计
(1):将每个指令对应一个方法。
(2):将功能方法写在一个主函数的方法里。
(3):使用条件判断语句来处理输入的命令。
6.java代码
部分主要代码
WordCount WC=new WordCount(0,0,0);
String inputFile="file.c";
String stopFlie="stopFile.txt";
String outputFile="result.txt";
for(int i=0;i<args.length;i++){
if(args[i].endsWith(".c"))
inputFile=args[i];
if(args[i].equals("-e"))
stopFlie=args[i+1];
if(args[i].equals("-o"))
outputFile=args[i+1];
}
WC.wc(inputFile);
for(int i=0;i<args.length;i++)
{
switch(args[i]){
case "-c":{
System.out.println(inputFile+",字符数:" + WC.getCharCount());
break;
}
case "-w":{
System.out.println(inputFile+",单词数:" + WC.getWordCount());
break;
}
case "-l":{
System.out.println(inputFile+",行数:" + WC.getLineCount());
break;
}
case "-o":{
String outText="";
for(int j=0;j<args.length;j++){
if(args[j].equals("-c"))
outText=outText+"\\r\\n"+inputFile+",字符数:" + WC.getCharCount();
if(args[j].equals("-w"))
outText=outText+"\\r\\n"+inputFile+",单词数:" + WC.getWordCount();
if(args[j].equals("-l"))
outText=outText+"\\r\\n"+inputFile+",行数:" + WC.getLineCount();
}
File writename = new File(outputFile); // 相对路径,如果没有则要建立一个新的output.txt文件
writename.createNewFile();
BufferedWriter out = new BufferedWriter(new FileWriter(writename));
out.write(outText);
out.flush();
out.close();
break;
}
}
}
}
//统计行数
public void wc(String inputFile) throws IOException{
String lineString = null;
String[] buffer;
File dir=new File(inputFile);
BufferedReader bf = new BufferedReader(new FileReader(dir)); // 读取文件
while((lineString=bf.readLine())!=null){
buffer=lineString.split(",| "); //遇到 , 空格 就结束赋值
for(int i=0;i<buffer.length;i++){
if(!buffer[i].equals(""))
wordCount++;
}
lineCount++;
charCount+=lineString.length();
}
bf.close();
}
}
7.测试用例
1.在命令行执行程序
用例测试结果
8.参考链接
http://lengbingteng-163-com.iteye.com/blog/1115568
Java如何读取Resources目录下的文件:
https://blog.csdn.net/oschina_40188932/article/details/78833754
运行exe时报错:
http://www.cnblogs.com/smileinwind/p/9370054.html
用eclipse如何将java程序生成一个.exe可运行文件?
https://blog.csdn.net/u011677147/article/details/42262815
9.总结
这是第一次写这样的项目,遇到过很多问题,因为之前从来没有操作过Java代码打包成exe运行,打包过程中查了很多资料,所以放了几个我个人觉得很有用的资料上来,希望对后面的人来说有帮助,这个还是存在一些问题。这方面的问题还是需要之后慢慢解决。
以上是关于用java写wordcount的主要内容,如果未能解决你的问题,请参考以下文章