第二次作业重交
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,對命令行處理等。
也認識到了許多不足的地方,希望能繼續努力,繼續進步。
?
轉載于:https://www.cnblogs.com/houjiangbo/p/9729491.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: Linux根据端口号查进程
- 下一篇: [leetcode] 22. Gener