1. 本周学习总结
1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。
2. 面向系统综合设计-图书馆管理系统或购物车
使用流与文件改造你的图书馆管理系统或购物车。
2.1 简述如何使用流与文件改造你的系统。文件中数据的格式如何?
我采用对象流将用户信息和图书馆中的藏书写入流中,当启动程序时,进行反序列化操作,当关闭程序时进行序列化操作。对象流写入到文件是以16进制保存的,适用于在网络之间传输。
2.2 简述系统中文件读写部分使用了流与文件相关的什么接口与类?为什么要用这些接口与类?
主要使用了ObjectInputStream和ObjectOutputStream类,Serializable接口。
使用ObjectInputStream和ObjectOutputStream类将整个对象以及其内部的引用变量一起写入流,要进行序列化的对象必须要实现Serializable接口,
2.3 截图读写文件相关代码。关键行需要加注释。
选做:3. 尝试为计算机学院网站设计一个搜索引擎系统(组队完成)
一开始可以只用控制台,不一定要用Web。
3.1 系统大概分为几部分,每个部分要完成什么功能?
《数学之美》里面提到搜索引擎分为三大块:下载,索引,搜索。
下载(爬取):就像爬取学院网站一样,把整个网站进行遍历
索引:像百度这样搜索引擎可以搜的那么快,索引的功劳非常大,还有就是文本内容的预处理,这个还需要分词,去除无关的内容
搜索:搜索是将根据你要查询的词,搜索出索引内匹配的内容,然后展示出来。
3.2 系统的整个工作流程是什么。
搜集网页信息-》索引库的建立-》用户检索的过程
3.3 为了完成该系统需要什么方面的知识?
httpclient jsoup 正则 lucene+analyzer 数据库 前端知识 jsp
- 首先的话就是就是观察网页结构,查看源码发现,导航栏上的主标题和副标题都是采用
<a class="menu0_0_" href="xxx.htm"><span class="s10_0_"> xxx </span></a>
的,中有一个class为menu0_0_
,于是可以采用正则表达式或者jsoup来把这些链接先弄下来。这些主干的url就爬取出来了
- 然后点进去这些导航栏,又发现了一个很6的,就是这里面的链接的话又是采用
class="c124907"
的形式来编写的,就有个想法,先遍历导航栏的主干url,然后,再利用多线程去访问这些主干url,把这些主干url下的副干url全部文章链接爬取下来。
这些代码是第一步下载功能,里面很多功能都是不太完善,比如网络超时,url去重等。第二步本来试着想把内容存进数据库,然后利用后端和数据库进行交互,在前端展示,后面发现数据量一大的话,用sql语句中的like时间会不断增多, 所以正在学习lucene+analyzer,在后期会不断把代码增加上来。
最近在学习建索,到了后面会不断更新
3. 代码量统计
3.1 统计本周完成的代码量
需要将每周的代码统计情况融合到一张表中。
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
1 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 484 | 484 | 3 | 3 |
4 | 910 | 426 | 7 | 4 |
5 | 1300 | 390 | 10 | 3 |
6 | 1600 | 300 | 13 | 3 |
7 | 2000 | 400 | 19 | 6 |
8 | 2511 | 511 | 23 | 4 |
9 | 2912 | 401 | 26 | 3 |
10 | 3922 | 1010 | 35 | 9 |