• 前言ps装饰器模式
    • java の i / o操作属于一种装饰器模式
    • 定义一个接口业务类T
    • 定义一个基础类继承业务类
      • 装饰的基础类构造方法需传一个T类型的参数
      • T t=new 装饰类At(t)
    • 举例:
      • File f = new File(“/usr/local/”);
      • PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter(new File(“./list.txt”))));
    • 实例化一个装饰类的对象
  • 输入输出是针对我の当前应用的上下文来定义
    • 字节流( InputStream,OutputStream)
    • 字符流(Reader,write)
    • InputStream,OutputStream,Reader,writer都是抽象类。所以不能直接new
    • 输入流(输入 -> 输出)
      • 获取数据–使用input
      • 发送数据–output
      • 基本流接口
        • 字节流:InputStream
        • 字符流:Reader
      • 基本实现流(表来源)
        • FileInputSteam / Reader
        • ByteArrayInputStream / Reader
        • PipedInputStream / Reader
      • 装饰器流(表内容)
        • BufferInputStream / Reader
        • DataInputStream / Reader
        • ObjectInputSteam / Reader
    • 输出流(输出 <- 输入)
      • 基本流接口
        • 字节流:OutputStream
        • 字符流:Writer
      • 基本实现流(小房子)
        • FileOutputSteam / Writer
        • ByteArrayOutputStream / Writer
        • PipedOutputStream / Writer
      • 装饰器流(大白壁纸)
        • BufferOutputStream / Writer
        • DataOutputStream / Writer
        • ObjectOutputSteam / Writer
  • 字符流
    • 不借助其他软件就可以识别(比如识别纯文本)
    • 关心内容(借助于字节流)
    • 每次存储以可变的若干字节写入存储
    • 字符流+输入=reader抽象类
    • 字符流+输出=writer抽象类
    • 字符流在操作的时候是使用到缓冲区的
  • 字节流
    • steam?字节流(二进制) 每8个bit写入 存储
    • 不关心内容
    • 操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的
    • 字节流+输入=inputsteam抽象类
    • 字节流+输出=Outputsteam抽象类
      • 基本流(表示来源)–先构建
        • FileOutputSteam
        • ByteArrayOutputSteam
        • PipeOutputSteam
      • 装饰器流(表示目的)
        • BufferOutputStream / Writer
        • DataOutputStream / Writer
        • ObjectOutputSteam / Writer

图片名字