zoukankan      html  css  js  c++  java
  • 201521123074 《Java程序设计》第12周学习总结

    1. 本周学习总结

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



    2. 书面作业

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

    A:


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

    分析:一个数字占一个字节,一个汉字占一个字节,一个分隔符“|”占一个字节,每一行后面还有占两个字节的换行符与回车符。一共加起来等于51个字节。


    1.3 如果调用PrintWriter的println方法,但在后面不close。文件大小是多少?为什么?
    A:文件大小为0。因为原来close()方法自动调用flush()方法刷新缓冲区的数据,close()不写,缓冲区数据丢失。



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

    A :
    用BufferedReader快,因为BufferedReader采用了缓冲区机制。


    2.2 将PrintWriter换成BufferedWriter,观察写入文件的速度是否有提升。记录两者的运行时间。试分析原因
    A:
    有提升,因为BufferedWriter利用了缓冲区,速度加快。
    参考:本题具体要求见流与文件实验任务书-题目1-2.1到2.3



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

    A : 有乱码。因为解码方式不同,此处解码只能用系统默认方式进行。
    解决方式:指定用UTF-8进行解码。


    3.2 编写一个方法convertGBK2UTF8(String src, String dst),可以将以GBK编码的源文件src转换成以UTF8编码的目的文件dst。
    参考:InputStreamReaderTest.java与教学PPT

    A:



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


    4.2 生成的文件有多大?分析该文件大小?将该文件大小和题目1生成的文件对比是大了还是小了,为什么?
    A:
    大了,因为使用数据流进行写操作,按数据类型进行占用字节计算。


    4.3 使用wxMEdit的16进制模式(或者其他文本编辑器的16进制模式)打开student.data,分析数据在文件中是如何存储的。
    A:按照字节大小存储。Int学号、年龄4个字节,String名字8个字节,Dounble成绩8个字节。


    4.4 使用ObjectInputStream(读), ObjectOutputStream(写)读写学生。(截图关键代码,出现学号) //参考ObjectStreamTest目录
    参考:本题具体要求见流与文件实验任务书-题目1-1



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




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




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




    #3. 码云及PTA

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


    3.2 PTA以前未完成的题目
    截图



  • 相关阅读:
    Postgresql HStore 插件试用小结
    postgres-xl 安装与部署 【异常处理】ERROR: could not open file (null)/STDIN_***_0 for write, No such file or directory
    GPDB 5.x PSQL Quick Reference
    postgresql 数据库schema 复制
    hive 打印日志
    gp与 pg 查询进程
    jquery table 发送两次请求 解惑
    python 字符串拼接效率打脸帖
    postgresql 日期类型处理实践
    IBM Rational Rose软件下载以及全破解方法
  • 原文地址:https://www.cnblogs.com/guzhiling/p/6829659.html
Copyright © 2011-2022 走看看