WordCount
项目链接:https://gitee.com/monkeyjb/WordCount
1.项目分析:
本项目是对文本文件的字符数,行数,单词数的统计,并将结果输出到文本文件中。
主要需要运用到对字符串的处理和IO的操作,由于需要用exe程序进行运行,所以还需要学会将java程序转为exe执行程序,并用窗口命令进行操作。
当然作业只要目的还是为了学习程序测试方面的知识。
本人用JAVA语言实现此程序,由于能力限制,只实现基本功能。
2.代码实现:
由于只实现基本功能,只用一个类来实现所有功能,类中包含main方法,和几个实现具体功能的静态方法。
代码如下:
main方法
用于对传入命令行的处理和输出操作。
public static void main(String[] args) { String fileName; String outFile=null; for(int i=0;i<args.length;i++){ switch (args[i]) { case "-c": fileName=args[i+1]; getCharCount(fileName); System.out.println(fileName+",字符数:"+getCharCount(fileName)); break; case "-w": fileName=args[i+1]; getWordCount(fileName); System.out.println(fileName+",单词数:"+getWordCount(fileName)); break; case "-l": fileName=args[i+1]; getLineCount(fileName); System.out.println(fileName+",行数:"+getLineCount(fileName)); break; case "-o": outFile=args[i+1]; writeToFile("test.txt", outFile); System.out.println("写入成功!"); break; } } }
getCharCount方法
获取传入文本文件的字符数
//获取字符数量的方法 public static int getCharCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ count+=line.length(); } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; }
getWordCount方法
获取单词数的方法
//获取单词数量的方法、 public static int getWordCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ String[] strings=line.trim().split(" |,"); count+=strings.length; } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; }
getLineCount方法
获取行数的方法
//获取总行数的方法 public static int getLineCount(String fileName){ int count=0; String line; try{ BufferedReader bf=new BufferedReader(new FileReader(fileName)); while((line=bf.readLine())!=null){ count++; } bf.close(); }catch (Exception e) { e.printStackTrace(); } return count; }
writeToFile方法
将结果写入到文本文件的方法
//将结果写入文件的方法 public static void writeToFile(String fileName,String outFile){ try{ BufferedWriter bw=new BufferedWriter(new FileWriter(outFile)); bw.write(fileName+",字符数:"+getCharCount(fileName)); bw.write("\r\n"); bw.write(fileName+",单词数:"+getWordCount(fileName)); bw.write("\r\n"); bw.write(fileName+",行数:"+getLineCount(fileName)); bw.close(); }catch (Exception e) { e.printStackTrace(); } }
3.程序测试:
用于被传入的文本文件的内容如图所示:
单元测试
字符数测量测试
传入的命令行
结果
单词数测量测试
传入的命令行
结果
行数测量测试
传入的命令行
结果
结果输出至文件测试
在cmd中输入命令
在result.txt中的结果
测试结果符合预期
说明:由于java程序转换为exe文件这一方面理解的不够透彻,导致前三个测试的结果不能在cmd中显示出来,所以使用了eclipse的命令行操作进行测试。
4.总结
通过此次作业,不仅对软件测试的过程有了初步的了解,而且学到了一些其他的以前不知道的操作,比如:java程序转exe,对命令行处理等。
也认识到了许多不足的地方,希望能继续努力,继续进步。