1. 总览
    • 磁盘操作:File
    • 字节操作:InputStream和OutputStream
    • 字符操作:Reader和Writer
    • 对象操作:Serializable
    • 网络操作:Socket
    • 新的输入/输出:NIO
    1. File类可以表示文件或者目录的信息,但是它不表示文件内容
    2. 字节操作
      1. 文件复制
      2. 装饰者模式
        1. InputStream是抽象组件
        2. FileInputStream是InputStream的子类,是具体组件,提供字节流输入操作
        3. FilterInputStream是抽象装饰类,为组件提供额外功能。如BufferedInputStream为FileInputStream提供了缓存功能,实例化一个具有缓存功能的字节流对象时,只需要在 FileInputStream 对象上再套一层 BufferedInputStream 对象即可。
    3. 字符操作
      1. 编码和解码
      2. String的编码方式
      3. Reader和Writer
      4. 实现逐行输出文本文件的内容
    4. 对象操作
      1. 序列化:将对象转化为字节序列 ObjectOutputStream.writeObject()。注意,静态变量属于类,不会被序列化
      2. Serializable,序列化的类需要实现Serializable接口
      3. transient关键字可以使一些字段不被序列化
    5. 网络操作
    • InetAddress:用于表示网络上的硬件资源,即 IP 地址;
    • URL:统一资源定位符;
    • Sockets:使用 TCP 协议实现网络通信;
    • Datagram:使用 UDP 协议实现网络通信。
    1. NIO
      1. 流与块: