学习目标

  • 字符流
    • 字符流读写数据
  • 字符缓冲流
    • 字符缓冲流读写数据
  • 转换流
    • 字节流转换成字符流
  • 序列化流
    • 序列化与反序列化数据
  • 装饰设计模式
    • 装饰设计模式思想
    • 装饰设计模式代码
  • commons-io工具包
    • 第三方工具的使用步骤
    • commons-io常用API

1. 字符流

1.1 常见的编码表及特点 ?

ASCII码表 特点 Unicode码表及特点
ASCII 美国信息交换标准码表,包括了数字字符,英文大小写字符和一些常见的标点符号字符。不包括中文 由国际组织ISO 制定,是统一的万国码表,计算机科学领域里的一项业界标准,容纳世界上大多数国家的所有常见文字和符号。
GBK window系统默认的码表,兼容ASCII码表,一个中文以俩个字节形式储存,支持繁体汉字以及部分日韩文字,但不包含世界上所有国家的文字 Unicode码表中的数字不是直接以二进制的形式存储到计算机的,会先通过UTF-7,UTF-7.5,UTF-8,UTF-16,以及 UTF-32的编码方式再存储到计算机,其中最为常见的就是UTF-8。UTF-8编码后一个中文以三个字节的形式存储

2.2 字符流的组成 及字符流能解决什么问题 ?

字符流 = 字节流 + 编码表
能够解决字节流读取中文出现乱码的问题

2.3 字符缓冲流如何使用 ?

BufferedWriter:可以将数据高效的写出
BufferedReader:可以将数据高效的读入到内存
1.创建字符缓冲输入流
2.创建字符缓冲输出流
3.一次读写一个字符(数组)
4.释放资源

2.4 转换流能解决什么问题 ?

转换流解决了字节流读取文本文件在控制台输出时,可能出现乱码的问题

2.5 转换流如何使用 ?

InputStreamReader : 是从字节流到字符流的桥梁
OutputStreamWriter : 是从字符流到字节流的桥梁
1.创建转换流对象(输入)
2.创建转换流对象(输出)
3.一次读写一个字符(数组)
4.释放资源

2.设计模式

2.1 装饰者模式能解决什么问题

能在不改变类,不使用继承的前提下,动态拓展类中功能

2.2 装饰者模式使用原则 ?

  1. 装饰类和被装饰类需要有共同的父类型。
    2. 装饰类要传入被装饰类的对象
    3. 在装饰类中把要增强扩展的功能进行扩展
    4. 对于不要增强的功能直接调用

    3. 当日问题小结

    3.1 当日遇到的问题

    3.2 出现问题原因

    3.3 解决问题方案