标签:system.in output 分析 evel exti 存储 行数统计 adl star
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
30 |
25 |
· Estimate |
· 估计这个任务需要多少时间 |
300 |
350 |
Development |
开发 |
240 |
180 |
· Analysis |
· 需求分析 (包括学习新技术) |
30 |
20 |
· Design Spec |
· 生成设计文档 |
30 |
30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
0 |
0 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
0 |
0 |
· Design |
· 具体设计 |
50 |
30 |
· Coding |
· 具体编码 |
240 |
180 |
· Code Review |
· 代码复审 |
50 |
180 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 |
30 |
Reporting |
报告 |
200 |
150 |
· Test Report |
· 测试报告 |
60 |
80 |
· Size Measurement |
· 计算工作量 |
300 |
400 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
40 |
60 |
|
合计 |
700 |
600 |
package WordCount; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CountChar { public int CharNum(String filePath) throws IOException { int charNumber=0; String line; File file=new File(filePath); //从文件中读取数据入字符输入缓冲流,为后续的字符操作提供缓冲功能 FileReader fr = null; FileWriter fw=null; try { fr = new FileReader(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader br=new BufferedReader(fr); //将数据存入缓冲字符串 StringBuffer sb=new StringBuffer(); //将数据一行一行的存入字符串 line=br.readLine(); while(line!=null) { sb=sb.append(line); line=br.readLine(); } String info=sb.toString(); charNumber=info.length(); br.close(); try { fw=new FileWriter("D:\\eclipse\\Homework01\\workdata\\result.txt",true); fw.write(filePath+" "+"行数:"+charNumber); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } ///错误实例,只能读入第一行数据并判断字符数。而后更改。 /*if((line=br.readLine())!=null) { char[] ch=line.toCharArray(); for(int i=0;i<ch.length;i++) { if(!Character.isWhitespace(ch[i])) { charNumber++; } } }*/ return charNumber; } }
package WordCount; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CountWord { public int countWord(String filePath) throws IOException { int wordNumber=0; String line; String [] saveWord;//字符串数组,存储分割的单词 //从文件中读入数据 File file=new File(filePath); FileReader fr=null; FileWriter fw=null; try { fr=new FileReader(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader br=new BufferedReader(fr); StringBuffer sb=new StringBuffer(); //将全部数据存入缓冲字符串 while((line=br.readLine())!=null) { sb.append(line); } //非字母字符全部用空格替换 String str=sb.toString().replaceAll("[^a-zA-Z^]", " "); saveWord=str.split("\\s+");//匹配字符并进行分割 wordNumber=saveWord.length; br.close(); try { fw=new FileWriter("D:\\eclipse\\Homework01\\workdata\\result.txt",true); fw.write(filePath+" "+"行数:"+wordNumber); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return wordNumber; } }
package WordCount; import java.io.*; public class CountLine { public int CountLine(String filePath) { int lineNumber=0; String line; //从文件中读入数据 File file=new File(filePath); FileReader fr=null; FileWriter fw=null; try { fr=new FileReader(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader br=new BufferedReader(fr); //通过行数增加,判断行数。 try { while((line=br.readLine())!=null) { lineNumber++; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { br.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { fw=new FileWriter("D:\\eclipse\\Homework01\\workdata\\result.txt",true); fw.write(filePath+" "+"行数:"+lineNumber); fw.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return lineNumber; } }
package WordCount; import java.io.IOException; import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { CountChar cc=new CountChar();//实例化所需要的功能类 CountLine cl=new CountLine(); CountWord cw=new CountWord(); String filePath="D:\\eclipse\\Homework01\\workdata\\test1.txt"; String Result=""; //显示查询的结果 int len=args.length; //命令长度 boolean useChar = false;//用于判断是否有统计字符数命令 boolean useLine = false;//用于判断是否有统计行数命令 boolean useWord = false;//用于判断是否有统计单词数命令 for(int i=0;i<len;i++) { if(args[i].startsWith("-"))//判断命令中出现了那些指令 { switch(args[i]) { case "-c": useChar = true; break; case "-l": useLine = true; break; case "-w": useWord =true; break; /* case "-o": if(!args[i+1].startsWith("-"))//用于判断后面是否指定了具体的输出文件 { outputFile =args[i+1]; i++; } else { System.out.println("error!"); System.exit(0); } break;*/ default: System.out.println("error !"); break; } } else System.out.println("命令不符!"); } if (useWord) { try { Result+=cw.countWord(filePath)+"\r\n"; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }//调用统计单词数方法 } if (useLine) { Result+=cl.CountLine(filePath)+"\r\n";//调用统计行数方法 } if (useChar) { try { Result+=cc.CharNum(filePath)+"\r\n"; } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }//调用统计字符数方法 } } /* * * * * 这是一个巨大的错误,写完才发现,自己并未看清真正的需求,当时就想着统计单词数,字符数,行数,就直接开始编码,最后才发现需要写入口函数 这是一个巨大的教训,这是这门课教会我们的东西,而我却根本没有引起重视,这是我真正需要学习的。此例不删,以此为戒。 * * * */ /*// TODO Auto-generated method stub Scanner sc=new Scanner(System.in); boolean flag=true; String filePath; int ch; System.out.println("请输入需操作文件地址:"); filePath=sc.nextLine(); while(flag) { System.out.println("1.统计字符数"); System.out.println("2.统计单词数"); System.out.println("3.统计行数"); System.out.println("4.返回菜单"); System.out.println("5.退出系统"); System.out.println("请输入所需操作(输入提示的数字):"); ch=sc.nextInt(); if(ch==5) { flag=false; break; } switch(ch) { case 1: CountChar cc=new CountChar(); int num1 = 0; try { num1 = cc.CharNum(filePath); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(filePath+" "+"字符数:"+num1); break; case 2: CountWord cw=new CountWord(); int num2 = 0; try { num2 = cw.countWord(filePath); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(filePath+" "+"单词数:"+num2); break; case 3: CountLine cl=new CountLine(); int num3=cl.CountLine(filePath); System.out.println(filePath+" "+"行数:"+num3); break; case 4: break; default: System.out.println("输入数字不正确"); break; } }*/ }
标签:system.in output 分析 evel exti 存储 行数统计 adl star
原文地址:https://www.cnblogs.com/Crls/p/9697125.html