作业2
---恢复内容开始---
1.
Fork 码云项目 https://gitee.com/SE-net16/PersonalProject-C;
https://gitee.com/SE-net16/PersonalProject-Java 到自己的仓库,在自己的码云仓库中新建一个学号命名的文件夹。
在文章开头给出博客作业要求地址,码云项目地址。
博客地址:https://www.cnblogs.com/ysm0301/
码云项目地址:https://gitee.com/YeHei/PersonalProject-Java/tree/master
2.PSP表格
-
PSP2.1 个人开发流程 预估耗费时间(分钟) 实际耗费时间(分钟) Planning 计划 15 10 · Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 30 40 Development 开发 200 150 · Analysis 需求分析 (包括学习新技术) 60 60 · Design Spec 生成设计文档 60 50 · Design Review 设计复审 10 15 · Coding Standard 代码规范 10 10 · Design 具体设计 45 35 · Coding 具体编码 120 140 · Code Review 代码复审 30 20 · Test 测试(自我测试,修改代码,提交修改) 20 25 Reporting 报告 60 50 · 测试报告 15 10 · 计算工作量 5 5 · 并提出过程改进计划 10 15
3.解题思路
1.采用的是java语言进行实现
2.首先想到的是代码要具有读写文本文档的能力,用到大概就是FileReader之类的,之后统计等的用的就是字符串的判断这样
4.关键代码
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
/*
* InputStreamReader(new FileInputStream(绝对文件名))进行文件的读取
* BufferedReader(文件读取)调用readLine()的方法
*/
public class test {
public static void main(String[] args) throws Exception {
// 统计一个文件的字符数,单词数,行数
Scanner input = new Scanner(System.in);
String path = "F:\\软工\\1.txt";
int countChar = 0;
int countword = 0;
int countline = 0;
InputStreamReader isr = new InputStreamReader(new FileInputStream(path));//用来读取文件中的数据
BufferedReader br = new BufferedReader(isr);//使用缓冲区,可以使用缓冲区的read(),readLine()方法;
/*readLine每次读取一行,read()读取整个文件,是生成文件内容最直接的方式,如果连续面向行的处理则是没有必要的
可直接综合为
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(path)));
*/
while(br.read()!=-1)//read()=-1代表数据读取完毕
{
String s = br.readLine();
countChar += s.length();//字符个数就是字符长度
countword += s.split(" ").length;//split() 方法用于把一个字符串分割成字符串数组,字符串数组的长度,就是单词个数
countline++;//因为是按行读取,所以每次增加一即可计算出行的数目
}
isr.close();//关闭文件
System.out.println("characters "+ ":"+countChar);
System.out.println("words "+":"+countword );
System.out.println("lines"+":"+countline);
}
}
5.测试
6.总结思考
这次的实验对于我来说难度较大,一开始没有编写好函数导致全盘崩溃,后面直接使用InputStreamReader读取文件一口气输出了行数,单词数以及字符数的信息,但是没能做到词频,希望以后的实验可以更投入。