博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
201521123028 《Java程序设计》第12周学习总结
阅读量:5129 次
发布时间:2019-06-13

本文共 1419 字,大约阅读时间需要 4 分钟。

1. 本周学习总结

流与文件

I/O流:Input/Output处理的简称,本质上就是一个数据序列。分为输入流Input Stream和输出流Output Stream。
最基本的可处理数据单位-byte(8-bit)。
通过操作流中的字节可处理各种不同类型的数据。
①字节流:read(读)和write(写),close()关闭流并flush(),将缓冲区内容写入。
②字符流:reader和writer。
③缓冲流:提高效率。
④Scanner与格式化:文本扫描。

2. 书面作业

将Student对象(属性:int id, String name,int age,double grade)写入文件student.data、从文件读出显示。

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

1.2 生成文件大小多少?分析该文件大小

1109772-20170513130416754-712017279.png
1109772-20170513131022879-413877202.png

**1.3 如果调用PrintWriter的println方法,但在后面不close。文件大小是多少?为什么?

Ans:缓冲流关闭(close)时一般会先调用flush方法,将缓冲区的数据真正写入底层流,如果没有关闭,则不会调用flush方法,也就是说没有真正写入文件。
则文件大小为0个字节。

Q2. 缓冲流

2.1 使用PrintWriter往文件里写入1千万行(随便什么内容都行),然后对比使用BufferedReader与使用Scanner从该文件中读取数据的速度(只读取,不输出),使用哪种方法快?请详细分析原因?提示:可以使用junit4对比运行时间
1109772-20170513135028644-1232393407.png
使用BufferedReader更快,因为利用了缓冲区,减少了I/O的次数。
2.2 将PrintWriter换成BufferedWriter,观察写入文件的速度是否有提升。记录两者的运行时间。试分析原因。
Ans:如上图,BufferedWriter更快,同理使用了缓冲。

Q3. 字符编码

3.1 现有EncodeTest.txt 文件,该文件使用UTF-8编码。使用FileReader与BufferedReader将EncodeTest.txt的文本读入并输出。是否有乱码?为什么会有乱码?如何解决?(截图关键代码,出现学号)

1109772-20170513163912863-22955007.png
1109772-20170513165554363-93160253.png

Q4. 字节流、二进制文件:DataInputStream, DataOutputStream、ObjectInputStream

4.1 参考DataStream目录相关代码,尝试将三个学生对象的数据写入文件,然后从文件读出并显示。(截图关键代码,出现学号)

1109772-20170513171649222-204284330.png
1109772-20170513171717191-1023503278.png
1109772-20170513171845301-1635245597.png

4.2 生成的文件有多大?分析该文件大小?将该文件大小和题目1生成的文件对比是大了还是小了,为什么?

Ans:66个字节。
相比第一题大了,因为使用UTF-8编码时,汉字所占字节会变大。

Q8. 正则表达式

8.1 如何判断一个给定的字符串是否是10进制数字格式?尝试编程进行验证。(截图关键代码,出现学号)
1109772-20170513170538457-1572712197.png

  1. 码云及PTA

1109772-20170513173215738-870067966.png

转载于:https://www.cnblogs.com/KILL-ljj/p/6848661.html

你可能感兴趣的文章
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
STM32F10x_RTC秒中断
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
构造者模式
查看>>
http和https的区别
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
今天新开通了博客
查看>>
AS3优化性能笔记二
查看>>
ElasticSearch(站内搜索)
查看>>
4----COM:a Generative Model for group recommendation(组推荐的一种生成模型)
查看>>
UVA 11137 - Ingenuous Cubrency
查看>>