• 20155316 2016-2017-2 《Java程序设计》第6周学习总结


    教材学习内容总结

    IO操作的目标

    • 从数据源当中读取数据,以及将数据写入到数据目的地当中;
    • I/O的来源地与目的地多种多样
    • I/O的流向:输入流、输出流、参照物

    IO的分类方法

    • 输入流输出流;
    • 字节流字符流(以什么为单位传输数据);
    • 节点流处理流;
      (真正处理数据的IO流节点流的基础上进行再加工)

    读取文件和写入文件的方法

    1. 大文件的读写方法
    2. 字节流的使用方法
    3. 字符流的使用方法
    I/O当中的核心类(字节流的)
    • InputStream

    • OutputStream:所有的字节流的父类(抽象类)

    • (子类)

    • FileInputStream FileOutputStream
      (从硬盘中读写)

    • 字节输入流:Reader(抽象类) 子类FileReader 方法 FileReader int read(char[] c, int off, int len)

    • 字节输出流:Writer(抽象类) 子类FileWriter 方法 void write(char[] c, int off, int len)

    核心方法
    • InputStream
      int read(byte[] b, int off, int len)

    • OutputStream
      void write(byte[] b, int off, int len)

    线程与并行API
    • Thread Runnable
    • synchronized
    • wait()、notify()、notifyAll()

    教材学习中的问题和解决过程

    • 1.在硬盘读取写入的时候要查编译错误么?查什么类型的?

    • 查编译器错误:

    • IOException - 如果不是因为位于文件末尾而无法读取第一个字节;如果输入流已关闭;如果发生其他 I/O 错误。

    • NullPointerException - 如果 b 为 null。

    • IndexOutOfBoundsException - 如果 off 为负,len 为负,或者 len 大于 b.length - off

    • 2.流(stream)的概念究竟是什么?

    • “流(stream)是一个理想化的数据流,实际输入或输出映射到这个数据流。”

    • “电脑外设控制,磁盘文件输入输出,只要是输入或者输出所产生的数据都是流。”

    • “流是由输入输出产生的,是用于数据交换或转换的统一的标准(特指这一类的数据)。”

    • “流可以想象水从水管里出来,这就是一股水流。c语言中流动的不再是水,而是有顺序的,有排列结构的数据。比如100001111100001(二进制)。”

    • 【小结】总而言之,流相当于一个管道,在里面流淌的是数据(也可以是其他形式)。

    • 3.对InputStream类中int read(byte[] b, int off, int len)方法的理解(有关len)

    • 与off(偏移量)和b有关,可以存放至b数组的数据长度不能超过偏移量所指定的位置以后的长度大小。

    • 4.大文件的写入是循环读取,但那个是怎么自动读一组数据就接着读后面一组数据的?不会重复读取?

    • 【猜测】类内程序有自动处理这一内容,封装在类内了。

    代码调试中的问题和解决过程

    • 1.在练习大文件的读写的时候,因误将API文件中“Reads up to len bytes of data from this input stream into an array of bytes. If len is not zero, the method blocks until some input is available; otherwise, no bytes are read and 0 is returned.”这句话片面的看成“otherwise, no bytes are read and 0 is returned.”,导致误将“若len为0,read返回0”,看成“若read读不到数据则返回0”,致使写的程序错误,陷入死循环
    • 【问题】因编写错误导致to.txt文件占用内存不断增大,即使修改程序并编译后也无法终止修改前程序的进行,该如何停止程序的进程呢?
    • 【过程】尝试将to.txt文件删除,但因有程序在占用这个文件所以无法删除;最后关掉IDEA,它自动帮我停止进程,而后就能够成功删除文件了。

    代码托管

    上周考试错题总结

    现有

    class Calc {
        public static void main(String [] args) {
            try {
                int x = Integer.parseInt("42a");
            //insert code here
                System.out.print("oops");
            }
        }
    }
    
    

    下面哪行分别插入到第五行,会导致输“oops"?
    A. catch(IllegalArgumentException e) {
    B. }catch (IllegalStateException c) {
    C. }catch(NumbelFormatException n) {
    D. }catch(ClassCastException c) {

    • 【答案】AC
    • 【提示】仔细看题

    结对及互评

    评分标准

    1. 正确使用Markdown语法(加1分):

      • 不使用Markdown不加分
      • 有语法错误的不加分(链接打不开,表格不对,列表不正确...)
      • 排版混乱的不加分
    2. 模板中的要素齐全(加1分)

      • 缺少“教材学习中的问题和解决过程”的不加分
      • 缺少“代码调试中的问题和解决过程”的不加分
      • 代码托管不能打开的不加分
      • 缺少“结对及互评”的不能打开的不加分
      • 缺少“上周考试错题总结”的不能加分
      • 缺少“进度条”的不能加分
      • 缺少“参考资料”的不能加分
    3. 教材学习中的问题和解决过程, 一个问题加1分

    4. 代码调试中的问题和解决过程, 一个问题加1分

    5. 本周有效代码超过300分行的(加2分)

      • 一周提交次数少于20次的不加分
    6. 其他加分:

      • 周五前发博客的加1分
      • 感想,体会不假大空的加1分
      • 排版精美的加一分
      • 进度条中记录学习时间与改进情况的加1分
      • 有动手写新代码的加1分
      • 课后选择题有验证的加1分
      • 代码Commit Message规范的加1分
      • 错题学习深入的加1分
      • 点评认真,能指出博客和代码中的问题的加1分
      • 结对学习情况真实可信的加1分
    7. 扣分:

      • 有抄袭的扣至0分
      • 代码作弊的扣至0分
      • 迟交作业的扣至0分

    点评模板:

    • 博客中值得学习的或问题:

      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:

      • xxx
      • xxx
      • ...
    • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

    • 参考示例

    点评过的同学博客和代码

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 45/45 1/1 15/15
    第二周 288/333 2/3 21/31
    第三周 513/846 1/4 11/42
    第四周 531/1377 1/5 12/54
    第五周 821/2198 1/6 15/69
    第六周 609/2807 1/7 10/79
    • 计划学习时间:15小时

    • 实际学习时间:10小时

    参考资料

  • 相关阅读:
    python 操作mysql
    python多线程
    python socket 网络编程
    nginx源码编译安装
    CentOS网卡配置文件
    使用本地yum源
    ping github 请求超时
    ping github 请求超时
    设计模式-装饰器模式
    设计模式-装饰器模式
  • 原文地址:https://www.cnblogs.com/protectmonarch/p/6660114.html
Copyright © 2020-2023  润新知