1.本周学习总结

1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容。

2.书面作业

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

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

1.2生成文件大小多少?分析该文件大小
答:length 1字节
id 1字节
name 4字节
age 2字节
score 4字节
分隔符 3字节
行末 2字节
一共51字节。

1.3如果调用PrintWriter的println方法,但在后面不close。文件大小是多少?为什么?
答:文件大小为0字节,因为close方法会自动调用flush方法,如果调用PrintWriter的println方法,但在后面没有close(),数据在缓冲区中导致数据丢失。

2. 缓冲流
2.1 使用PrintWriter往文件里写入1千万行(随便什么内容都行),然后对比使用BufferedReader与使用Scanner从该文件中读取数据的速度(只读取,不输出),使用哪种方法快?请详细分析原因?提示:可以使用junit4对比运行时间


答:使用BufferedReader更快,因为使用缓冲减少了I/O次数,read时,当缓冲区空才真正进行底层操作,write时,当缓冲区满时才真正进行底层操作。

2.2 将PrintWriter换成BufferedWriter,观察写入文件的速度是否有提升。记录两者的运行时间。试分析原因。

答:速度有提升,因为BufferedWriter有缓冲区。

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

答:会有乱码,因为FileReader并没有实现父类中带字符集参数的构造函数,只能按系统默认的字符集来解码。


3.2编写一个方法convertGBK2UTF8(String src, String dst),可以将以GBK编码的源文件src转换成以UTF8编码的目的文件dst。

4.字节流、二进制文件:DataInputStream, DataOutputStream、ObjectInputStream
4.1参考DataStream目录相关代码,尝试将三个学生对象的数据写入文件,然后从文件读出并显示。(截图关键代码,出现学号)

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

4.3使用wxMEdit的16进制模式(或者其他文本编辑器的16进制模式)打开student.data,分析数据在文件中是如何存储的。

4.4使用ObjectInputStream(读), ObjectOutputStream(写)读写学生。(截图关键代码,出现学号) //参考ObjectStreamTest目录

5.Scanner基本概念组装对象
编写public static List<Student> readStudents(String fileName)从fileName指定的文本文件中读取所有学生,并将其放入到一个List中。应该使用那些IO相关的类?说说你的选择理由。

6.选做:RandomAccessFile
6.1使用RandomAccessFile实现题目1.1。(截图关键代码,出现学号)
6.2分析文件大小

7.文件操作
编写一个程序,可以根据指定目录和文件名,搜索该目录及子目录下的所有文件,如果没有找到指定文件名,则显示无匹配,否则将所有找到的文件名与文件夹名显示出来。
7.1编写public static void findFile(String path,String filename)函数,以path指定的路径为根目录,在其目录与子目录下查找所有和filename相同的文件名,一旦找到就马上输出到控制台。(截图关键代码,出现学号)

7.2加分点:使用队列、使用图形界面、使用Java NIO.2完成(任选1)

7.3选做:实现删掉指定目录及其子目录下的所有空文件夹。

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


8.2 选做:修改HrefMatch.java,尝试匹配网页中的数字字符串、匹配网页中的图片字符串。

3.码云及PTA

3.1.码云代码提交记录
在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

转载于:https://www.cnblogs.com/zq1996/p/6850356.html

201521123060 《Java程序设计》第12周学习总结相关推荐

  1. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  2. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  3. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

  4. 20175204 张湲祯 2018-2019-2《Java程序设计》 第一周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第一周学习总结 教材学习内容总结 -第一章Java入门要点: -Java的地位:具有面向对象,与平台无关,安全稳定和多线 ...

  5. 20175221 2018-2019-2 《Java程序设计》第一周学习总结

    20175221 2018-2019-2 <Java程序设计>第一周学习总结 教材学习内容总结 本周通过观看书本配套视频,学到了如解释器,编译器等一些简单概念. 还懂得了java的一些简单 ...

  6. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  7. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  8. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  9. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  10. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

最新文章

  1. 华科计算机优势专业排名,985高校强势热门专业排行榜,浙大川大华科表现较好...
  2. java accept encoding_Accept-Encoding gzip 乱码 和Okhttp的解决方法
  3. javafx 安装_JDK安装教程及环境配置
  4. v1.0.2-2017.04.26
  5. 开源项目推荐:CNC+CRC/SoftPLC/OpenCASCADE/CAD/CAM
  6. 用公众号获取 任意公众号文章列表 软件还是免费
  7. 【话题揭秘】某大型国有银行的敏捷落地实践
  8. 无线智能路由器家长控制宽带
  9. (9)引入哈希桶的概念来实现一个哈希表
  10. 全新威马E.5将于4月15日上市
  11. 设置 cookie过期时间
  12. 面向深度学习研究人员的自然语言处理实例教程
  13. ASCII码对照表 包含二进制、十进制、十六进制
  14. 胎压检测c语言pta,汽车胎压检测系统的设计与实现
  15. 互联网这股裁员风,要吹到啥时候?
  16. navicat下载安装教程
  17. TD-SCDMA正传(1)
  18. 服务器机房消防系统,服务器机房消防系统和维护
  19. 基于js管理大文件上传以及断点续传
  20. 异步电机三相电流滞环矢量控制

热门文章

  1. 学习前端需要掌握什么基础?
  2. 如何成为一名优秀的web前端工程师
  3. 经济师计算机考试取消,2019年经济师考试计算机机考答题要求及说明
  4. 3dmax高版本转低版本插件_Fundebug前端JavaScript插件更新至1.8.0,兼容低版本的Android浏览器...
  5. 请求参数 统一 管理 java_Retrofit+Rxjava+okhttp基本操作和统一处理 – R...
  6. shell的单引号与双引号
  7. linux服务器遭攻击,记一次linux服务器被攻击与防护
  8. oracle flex asm ceph,关于12c flex cluster及 flex asm疑问
  9. pysimplegui 显示 html,PySimpleGUI 的第一个桌面软件
  10. python 近期用到的基础知识汇总(主要是skimage的相关矩阵变化函数)(二)