zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    笔记44 Hibernate快速入门(一)
    tomcat 启用https协议
    笔记43 Spring Security简介
    笔记43 Spring Web Flow——订购披萨应用详解
    笔记42 Spring Web Flow——Demo(2)
    笔记41 Spring Web Flow——Demo
    Perfect Squares
    Factorial Trailing Zeroes
    Excel Sheet Column Title
    Excel Sheet Column Number
  • 原文地址:https://www.cnblogs.com/KILL-ljj/p/6848661.html
Copyright © 2011-2022 走看看