学号:201621123032 《Java程序设计》第12周学习总结
1:本周学习总结
1.1:以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。

2:面向系统综合设计-图书馆管理系统或购物车
2.1: 简述如何使用流与文件改造你的系统。文件中数据的格式如何?
比起上次图书信息储存在hashmap里,本次采用流与文件将图书信息放在了文件里,也从文件里读取信息。
文件格式为: .txt。
2.2:简述系统中文件读写部分使用了流与文件相关的什么接口与类?为什么要用这些接口与类?
使用字符输出流:FileWriter,BufferedWriter。 字符输入流:FileReader ,BufferedReader
- FileWriter:创建文件字符输出流
- BufferedWriter:使用缓冲数据流封装输出流
- FileReader:创建文件字符输入流
BufferedReader:使用缓冲数据流封装输入流
为了从文件中读取信息和将新添信息写入文件中。2.3: 截图读写文件相关代码。关键行需要加注释。
将图书内容储存到文件里:

查询某本图书信息:

删除文件里的某行图书信息:先将信息储存到动态数组里,在重写文件信息。

部分功能还没
有实现。
运行结果:
3:代码量统计
| 周次 | 总代码量 | 新增加代码量 | 总文件夹 | 新增加文件夹 |
|---|---|---|---|---|
| 1 | 114 | 114 | 11 | 11 |
| 2 | 520 | 406 | 16 | 6 |
| 3 | 1089 | 569 | 22 | 6 |
| 5 | 1425 | 336 | 29 | 7 |
| 6 | 1819 | 394 | 31 | 2 |
| 7 | 2987 | 1168 | 54 | 23 |
| 8 | 5437 | 2450 | 79 | 25 |
| 9 | 5695 | 258 | 84 | 5 |
| 10 | 6680 | 985 | 102 | 18 |
| 11 | 6935 | 255 | 111 | 9 |
| 12 | 7401 | 466 | 123 | 12 |
| 13 | 8899 | 1498 | 141 | 18 |

4:选做
4.1: 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读)
1: 生成的三个学生对象,使用PrintWriter的println方法写入student.txt,每行一个学生,学生的每个属性之间用|作为分隔。使用Scanner或者BufferedReader将student.txt的数据读出。(截图关键代码,出现学号)

运行结果:

2:生成文件大小多少(使用右键文件属性查看)?分析该文件大小

每行16个字节
num:2, name:4, age:2,grade:5 分隔符:3
4.2:缓冲流
1:使用PrintWriter往文件里写入1千万行(随便什么内容都行),然后对比使用BufferedReader与使用Scanner从该文件中读取数据的速度(只读取,不输出),使用哪种方法快?截取测试源代码,出现学号。请详细分析原因?提示:可以使用junit4对比运行时间

使用BufferedReader更快,BufferedReader使用缓冲可以减少IO次数,所以读取速度变快。
时间对比:

4.3:
1: 现有EncodeTest.txt 文件,包含一些中文,该文件使用UTF-8编码。使用FileReader与BufferedReader将EncodeTest.txt的文本读入并输出。是否有乱码?为什么会有乱码?如何解决?(截图关键代码,出现学号)
会乱码,因为文件是UTF-8编码,但是读取的编码是用GBK。

解决:只要代码读取时改用UTF-8编码即可

运行结果:
学号:201621123032 《Java程序设计》第12周学习总结的更多相关文章
- 学号20145322 《Java程序设计》第一周学习总结
学号20145322 <Java程序设计>第一周学习总结 教材学习内容总结 Java诞生于Sun公司,于1998年12月4日发布J2SE,约以两年为一周期推出重大版本更新. 2010年Or ...
- 面向对象程序设计(JAVA) 第12周学习指导及要求
2019面向对象程序设计(Java)第12周学习指导及要求 (2019.11.15-2019.11.18) 学习目标 (1) 掌握Vetor.Stack.Hashtable三个类的用途及常用API ...
- 学号 20175212 《Java程序设计》第九周学习总结
学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...
- 2018面向对象程序设计(Java)第12周学习指导及要求
2018面向对象程序设计(Java)第12周学习指导及要求 (2018.11.15-2018.11.18) 学习目标 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: (2) 掌 ...
- 学号20145303 《Java程序设计》第一周学习总结
学号20145303 <Java程序设计>第一周学习总结 教材学习内容总结 *dos命令行: dir:列出当前目录下的文件及文件名 md:创建目录 rd:删除目录.为空时文件夹(文件夹为空 ...
- 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结
20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...
- 2018-2019-3《Java程序设计》第二周学习总结
学号20175329 2018-2019-3<Java程序设计>第二周学习总结 教材学习内容总结 第二三章与我们所学习的C语言有很多的相似点,在这里我想主要就以我所学习的效果来讨 ...
- 2018-03-11 20165235祁瑛《Java程序设计》第二周学习总结
2018-03-11 20165235祁瑛<Java程序设计>第二周学习总结 教材学习内容总结 第二章要点: 在这一章中我学到了很多东西: (1)布尔类型boolean,布尔类型的赋值只能 ...
- # 20155236 2016-2017-2 《Java程序设计》第二周学习总结
20155236 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 对于类型.变量.运算符.流程控制等等的学习.在其中包含着基本的语法元素,还有基本的逻辑语句. ...
- 20165324 《Java程序设计》第九周学习总结
学号 20165324 <Java程序设计>第九周学习总结 教材学习内容总结 第十三章 Java网络编程 URL类 使用URL创建对象的应用程序称为客户端 一个URL对象封装一个具体资源的 ...
随机推荐
- Windows DLL资料整理
1.使用Visual C++ 6.0创建dll 2. 函数的调用规则(__cdecl,__stdcall,__fastcall,__pascal) 要点: 1. 如果你的程序中没有涉及可变参数,最好使 ...
- 如何使用jQuery-ContextMenu实现右击菜单
最近在做项目中,遇到一个棘手的问题,页面上有很多功能需要实现,每个功能需要绑定一个按钮.如果一个功能绑定一个按钮,那么将会占用页面很大的空间,而且可能会使页面变得不美观.思前想后,决定将所有按钮做成右 ...
- 【深入理解JVM】类加载器与双亲委派模型
原文链接:http://blog.csdn.net/u011080472/article/details/51332866,http://www.cnblogs.com/lanxuezaipiao/p ...
- RobotFramework下的http接口自动化Get关键字的使用
在使用Create Http Context关键字创建了http的调用环境后,就可以使用Get关键字来发送一个http协议中最常用的get请求了. Get 关键字只接受一个url参数,该关键字的API ...
- Keras官方中文文档:序贯模型
快速开始序贯(Sequential)模型 序贯模型是多个网络层的线性堆叠,也就是"一条路走到黑". 可以通过向Sequential模型传递一个layer的list来构造该模型: f ...
- 【BZOJ1924】【SDOI2010】所驼门王的宝藏(Tarjan,SPFA)
题目描述 在宽广的非洲荒漠中,生活着一群勤劳勇敢的羊驼家族.被族人恭称为"先知"的Alpaca L. Sotomon是这个家族的领袖,外人也称其为"所驼门王". ...
- UNDO及MVCC、崩溃恢复
UNDO特性:避免脏读.事务回滚.非阻塞读.MVCC.崩溃恢复 事务工作流程(图2) MVCC原理机制 崩溃恢复:redo前滚.undo回滚 长事务.大事务:危害.判断.处理 UNDO优化:实现und ...
- asp.net跳出iframe结构转向登录
在网页编程时,我们经常需要处理,当session过期时,我们要跳到登陆页面让用户登陆,由于我们可能用到IFrame框架,所以我们我登陆页面需要显示在整个页面,而不是一个IFrame中,大部分的网友是用 ...
- 与二叉树有关的编程题的Java代码实现
该文章几乎包含了所有与二叉树相关的基础面试题,其中包括二叉树的四种遍历方法:前序遍历,中序遍历,后续遍历,层次遍历. 算法题包括: 二叉树的序列化和反序列化 给定一颗二叉搜索树,请找出其中的第k大的结 ...
- TLA+和并发系统正确性验证
TLA+介绍 TLA+(WIKI,官网)是一门领域特定语言,主要用于数理逻辑计算和并发系统的正确性验证.TLA+中的TLA代表的是"行为时序逻辑(Temporal Logic of Acti ...