1. InputStreamReader(转换流)(处理流)
  2. OutputStreamWriter(转换流)(处理流)
  3. read()返回-1后,说明到达文件尾,不能再读取。read(byte[] buffer ,int offset , int length)返回-1后,说明到达文件尾,不能再读取. 最好都要关闭流 close() ,在finally()关闭并且判断是不是为空,捕获. 在while()里面读在方法里,当read()!=-1是继续读,知道=-1跳出循环
  4. writer( int b) , writer(byte[] buffer ,int offset , int length),close()跟read方法里面的close()一样, flush()将在流里面的缓冲全部写到目的地
  5. read()返回-1后,说明到达文件尾,不能再读取。read(byte[] buffer ,int offset , int length)返回-1后,说明到达文件尾,不能再读取. 最好都要关闭流 close() ,在finally()关闭并且判断是不是为空,捕获. 在while()里面读在方法里,当read()!=-1是继续读,知道==-1跳出循环
  6. 按照数据流的方向不同可以分为:输入流和输出流。 按照处理数据单位不同可以分为:字节流和字符流。 按照实现功能不同可以分为:节点流和处理流。处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。
  7. writer( int b) , writer(byte[] buffer ,int offset , int length),close()跟read方法里面的close()一样, flush()将在流里面的缓冲全部写到目的地
  8. InputStream(字节输入流)
    1. FileInputStream(字节输入流)(节点流)
    2. PipedInputStream(字节输入流)(节点流)
    3. ByteArrayInputStream(字节数组输入流)(节点流)
    4. ObjectInputStream(对象流)(处理流)
      1. 对象序列化:把对象直接转换成二进制,写入介质中。 使用对象流需要实现Serializable接口,否则会报错。而若用transient关键字修饰成员变量,不写入该成员变量,若是引用类型的成员变量为null,值类型的成员变量为0.有readObject()方法可以直接读一个对象
    5. FilterInputStream (过滤器字节输入流)
      1. DataInputStream(数据流)(处理流)
        1. 数据流就解决了我们输出数据类型的困难。数据流可以直接输出float类型或long类型,提高了数据读写的效率。
      2. BufferedInputStream(缓冲字节输入流)(处理流)
  9. OutputStream(字节输出流)
    1. FileOutputStream(字节输出流)(节点流)
    2. PipedOutputStream(字节输出流)(节点流)
    3. ByteArrayOutputStream(字节数组输入流)(节点流)
    4. ObjectOutputStream(对象流)(处理流)
      1. 把封装的对象直接输出,而不是一个个在转换成字符串再输出。
    5. FilterOutputStream(过滤器字节输出流)
      1. BufferedOutputStream(缓冲字节输出流)(处理流)
      2. DataOutputStream(数据流)(处理流)
      3. printStream(处理流)
  10. Writer(字符输出流)
    1. FileWriter(字符输出流)(节点流)
    2. PipedWriter(字符输出流)(节点流)
    3. CharArrayWriter(字符数组输出流)(节点流)
    4. BufferedWriter(缓冲字符输出流)(处理流)
    5. printWriter(处理流)
  11. Reader(字符输入流)
    1. FileReader(字符输入流)(节点流)
    2. PipedReader(字符输入流)(节点流)
    3. CharArrayReader(字符数组输入流)(节点流)
    4. BufferedReader(缓冲字符输入流)(处理流)
      1. readLine() 可以读一行,等于null时,读完了, 最好都要关闭流 close() ,在finally()关闭并且判断是不是为空,捕获. 在while()里面读在方法里,当read()!=null是继续读,知道==null跳出循环