201621123005《Java程序设计》第十二次作业
《Java程序设计》第十二次作业
1. 本周学习总结
1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。
2. 面向系统综合设计-图书馆管理系统或购物车
使用流与文件改造你的图书馆管理系统或购物车。
2.1 简述如何使用流与文件改造你的系统。文件中数据的格式如何?
购物车系统:
将购物车中的产品信息用文件来存储,用BufferedReader
来读取文件中货品信息。
2.2 简述系统中文件读写部分使用了流与文件相关的什么接口与类?为什么要用这些接口与类?
使用了BufferedReader
类来提高读取速度,用FileReader
和File
,File类用来通过一个指定路径创建一个实例。
2.3 截图读写文件相关代码。关键行需要加注释。
3. 代码量统计
3.1 统计本周完成的代码量
周次 | 总代码量 | 新增代码量 | 总文件数 | 新增文件数 |
---|---|---|---|---|
2 | 381 | 381 | 12 | 5 |
3 | 661 | 280 | 19 | 7 |
4 | 974 | 313 | 24 | 5 |
5 | 1358 | 384 | 33 | 9 |
6 | 2211 | 853 | 37 | 4 |
7 | 3223 | 412 | 42 | 5 |
8 | 3635 | 423 | 46 | 4 |
9 | 3867 | 232 | 51 | 5 |
10 | 3997 | 130 | 55 | 4 |
11 | 4297 | 300 | 63 | 8 |
4. 流与文件学习指导
1. 字符流与文本文件:使用 PrintWriter(写),BufferedReader(读)
将Student对象(属性:int id, String name,int age,double grade)写入文件student.data、从文件读出显示。
1.1 生成的三个学生对象,使用PrintWriter的println方法写入student.txt,每行一个学生,学生的每个属性之间用|作为分隔。使用Scanner或者BufferedReader将student.txt的数据读出。(截图关键代码,出现学号)
1.2 生成文件大小多少(使用右键文件属性查看)?分析该文件大小
有截图可知文件中共有51个字节,其中数字,英文字符,|,各占一个字节,换行符各占两个字符,每行有17个字符,所以共有三行51个字节。
1.3 如果调用PrintWriter的println方法,但在后面不close。文件大小是多少?为什么?
当不close
的时候文件大小为0字节,因为PrintWriter
可以将数据写到缓冲区内,当使用close
时,缓冲区的数据就会被送出来,而当没有close
时,我们可以先用floush
方法把数据先送出来,而后缓冲区的数据被丢失,因此文件大小为0
2. 缓冲流
2.1 使用PrintWriter往文件里写入1千万行(随便什么内容都行),然后对比使用BufferedReader与使用Scanner从该文件中读取数据的速度(只读取,不输出),使用哪种方法快?截取测试源代码,出现学号。请详细分析原因?提示:可以使用junit4对比运行时间
使用BufferedReader
的读取方法更快,因为BufferedReader
相较于Scanner
有更大的缓冲区,
2.2 将PrintWriter换成BufferedWriter,观察写入文件的速度是否有提升。记录两者的运行时间。试分析原因。
写入的速度有提升,因为BufferedWriter
有更大缓冲区。
3. 字符编码
3.1 现有EncodeTest.txt 文件,包含一些中文,该文件使用UTF-8编码。使用FileReader与BufferedReader将EncodeTest.txt的文本读入并输出。是否有乱码?为什么会有乱码?如何解决?(截图关键代码,出现学号)
会有乱码,因为文本时UTP-8编码的,而读取是GBK编码的
3.2 编写方法convertGBK2UTF8(String src, String dst),可以将以GBK编码的源文件src转换成以UTF8编码的目的文件dst。
201621123005《Java程序设计》第十二次作业的更多相关文章
- 201521123027 <java程序设计>第十二周作业总结
1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2.书面作业 将Student对象(属性:int id, String name,int age,double ...
- 《Java程序设计》十四次作业
<Java程序设计>十四次作业实验总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 3. 代码量统计 周次 总代码量 新增代码量 总文件数 新增 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第十二周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第十二周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...
- 【西北师大-2108Java】第十二次作业成绩汇总
[西北师大-2108Java]第十二次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第14周学习指导及要求 实验目的与要求 (1)掌握GUI布局管理器用法: (2)掌握Java Swing文本 ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
- 软工 · 第十二次作业 - Beta答辩总结
福大软工 · 第十二次作业 - Beta答辩总结 写第十二次的时候操作失误直接在Beta版本的博客里改了...第七次冲刺的作业链接补在这里 Beta(7/7) 组长本次博客作业链接 项目宣传视频链接 ...
- 20145326《Java程序设计》实验二Java面向对象程序设计实验报告
20145326<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- Java设计模式(十二) 策略模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/design_pattern/strategy/ 策略模式介绍 策略模式定义 策略模式(Strategy Pattern) ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
随机推荐
- DZNEmptyDataSet 使用
gitHub地址:https://github.com/dzenbot/DZNEmptyDataSet 效果图: 代码: #import "UIScrollView+EmptyDataSet ...
- 002-原始jpa以及基本加载过程,基本sql使用
一.概述 1.1.创建 public void createMethod() { EntityManagerFactory factory = Persistence.createEntityMana ...
- scikit-learn 中常用的评估模型
一,scikit-learn中常用的评估模型 1.评估分类模型: 2.评估回归模型: 二.常见模型评估解析: •对于二分类问题,可将样例根据其真实类别和分类器预测类别划分为:(T,F表示预测的 ...
- (2)基本工作流(制作场景与UI)
1.认识cocos编辑器主界面. 2.制作新场景: 1)打开我们新建的HelloCocos项目,新建场景名称为“Scene”,如下图: 2)点击新建,场景就被创建出来了,如下图: 3) ...
- 安装WIN7时提示“缺少所需的CD/DVD驱动器设备驱动程序”
同事机器重装Win7,先百度了一下不适合64bit,于是直接上32bit系统. BOIS设置DVD启动,把安装盘放在移动光驱里,开始安装. 在安装时出现下图错误:“缺少所需的CD/DVD驱动器设备驱动 ...
- 中文乱码—Servlet—SpringMVC
一.SpringMVC中的中文乱码问题 a:处理全局请求的中文乱码(配置Web.xml的字符编码过滤器) <filter> <filter-name>encodingFilte ...
- Python numpy有什么用?
NumPy is the fundamental package for scientific computing with Python.就是科学计算包. a powerful N-dimensio ...
- win2008R2 bitnami 安装 wamp
下载官方版本:bitnami-wampstack-5.6.30-1-windows-x64-installer.exe 用管理员权限安装,不然mysql服务可能会安装不上.
- Asynchronous Programming Patterns
Asynchronous Programming Patterns The .NET Framework provides three patterns for performing asynchro ...
- 【软件是否安装】linux下如何查看某软件是否已安装
因为Linux安装软件的方式比较多,所以没有一个通用的办法能查到某些软件是否安装了.总结起来就是这样几类: 1.rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa ...