• 201521123028 《Java程序设计》第12周学习总结


    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的数据读出。(截图关键代码,出现学号)

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

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

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

    使用BufferedReader更快,因为利用了缓冲区,减少了I/O的次数。
    2.2 将PrintWriter换成BufferedWriter,观察写入文件的速度是否有提升。记录两者的运行时间。试分析原因。
    Ans:如上图,BufferedWriter更快,同理使用了缓冲。

    Q3. 字符编码

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

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

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


    4.2 生成的文件有多大?分析该文件大小?将该文件大小和题目1生成的文件对比是大了还是小了,为什么?
    Ans:66个字节。
    相比第一题大了,因为使用UTF-8编码时,汉字所占字节会变大。

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

    1. 码云及PTA

  • 相关阅读:
    简单封装的ajax请求
    mysql-8.0 安装教程(自定义配置文件,密码方式已修改)
    计算机专业术语
    mvc路由
    Chosen三级联动
    Chosen通用初始化
    .NET Core学习之路
    Sql的一些常规判断
    CORS 跨域
    SQL 的一个技巧
  • 原文地址:https://www.cnblogs.com/KILL-ljj/p/6848661.html
Copyright © 2020-2023  润新知