IO(Input Output)流:IO流用来处理设备之间的数据传输

流按操作数据分为两种:字节流和字符流

流按流向分为:输入流、输出流

字节流的两个顶层父类:

1、InputStream

  方法:

    int available(); 
    void close();--关闭输入流并释放与流关联的所有系统资源
    void mark(int readLimit);--标记此输入流中的当前位置
    boolean markSupported();--测试输入流是否支持mark和reset方法
    static InputStream nullInputStream()

    abstract int read();--从输入流中读取下一个数据字节
    int read(byte[] b);--从输入流中读取一定数量的字节,并将其存储到缓冲区数组b中
    int read(byte[],int off,int len);--len从输入流中读取多达字节的数据到字节数组中。
  
    byte[] readAllBytes(); --从输入流中读取所有剩余的字节。
    int readNBytes(byte[] b,int off,int len); --从输入流中将请求的字节数读取到给定的字节数组中。
    byte[] readNBytes(int len); --从输入流中读取指定数量的字节。
    void reset(); --将此流重新定位到mark在此输入流上最后一次调用该方法的位置 。
    long skip(long n);--跳过并丢弃n此输入流中的数据字节。
    void skipNBytes(long n);--跳过并完全丢弃n此输入流中的数据字节。
    long transferTo(OutputStream out);--从此输入流中读取所有字节,然后按读取顺序将字节写入给定的输出流。

2、OutPutStream

  方法:

void close(); --关闭此输出流并释放与此流关联的所有系统资源。
    void flush(); --刷新此输出流,并强制写出所有缓冲的输出字节。
    static OutputStream nullOutputStream();

    void write(byte[] b);--将b.length指定字节数组中的字节写入此输出流。
    void write(byte[] b,int off,int len); --将len指定字节数组中从偏移量开始的字节写入off此输出流。
    abstract void write(int b); --将指定的字节写入此输出流。

字符流的两个顶层父类

 1、Reader

  方法:

abstract void close();--关闭流并释放与其关联的所有系统资源。
    void mark(int readAheadLimit);--标记流中的当前位置。
    boolean markSupported();--此流是否支持mark()操作。
    static Reader nullReader();--返回Reader不读取任何字符的新字符。
  
    int read();--读取单个字符。
    int read(char[] cbuf);--将字符读入数组。
    abstract int read(char[] cbuf, int off, int len);--将字符读入数组的一部分。
    int read(CharBuffer target);--尝试将字符读入指定的字符缓冲区。
  
    boolean ready();--此流是否已准备好被读取。
    void reset();--重置流。
    long skip(long n);--跳过字符。
    long transferTo(Writer out);--从该读取器读取所有字符,并按照读取顺序将这些字符写入给定的写入器。

2、Writer

  方法:

    Writer append(char c);--将指定字符追加到此编写器。
    Writer append(CharSequence csq);--将指定的字符序列附加到此编写器。
    Writer append(CharSequence csq, int start, int end);--将指定字符序列的子序列追加到此编写器。
  
    abstract void close();--关闭流,先冲洗。
    abstract void flush();--冲洗流。(抽象方法需要子类实现)
  
    static Writer nullWriter();--返回一个Writer丢弃所有字符的新字符。
  
    void write(char[] cbuf);--写一个字符数组。
    abstract void write(char[] cbuf, int off, int len);--写入一部分字符数组。
    void write(int c);--写一个字符。
    void write(String str);--写一个字符串。
    void write(String str, int off, int len);--写入字符串的一部分。