IO流的基本作用:   文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流

IO流的基本作用:
在这里插入图片描述

1.文件字节流: FileInputStream,FileOutputStream, 直接链接文件的节点流,作用是处理二进制的文件,将文件通过byte类型的变量中或者数组进行读取和输出。
使用 FileInputStream 读取文件内容

  1. abstract int read( );
  2. int read( byte b[ ] );
  3. int read( byte b[ ], int off, int len );
  4. int available( );
  5. close( );
    使用 FileOutputStream 写内容到文件
  6. abstract void write( int b );
  7. void write( byte b[ ] );
  8. void write( byte b[ ], int off, int len );
  9. void flush( );
  10. void close( );
    2.文件字符流:Reader, Writer, 也是用来读取和写入文件的节点流, 数据源为文件, 以字符类型的数组或者变量作为中转站来操作, 常常用来操作纯文本文件。
    使用 Reader 读取文件内容
  11. int read( );
  12. int read( char [ ]cbuf );
  13. int read( char [ ]cbuf, int off, int len );
  14. int available( );
  15. close( );
    使用 Writer 写内容到文件
  16. void write( int c );
  17. void write( char[]cbuf);
  18. abstract void write( char [ ]cbuf, int off, int len );
  19. void write(String str);
  20. abstract void flush( );
  21. void close( );
    3.缓冲字节流:BufferedInputStream, BufferedOutputStream, 是用来提高读取和写入效率的处理流.缓冲字节流在中转站与数据源和中转站与目标之间有一个byte类型的数组用来暂时存储字节, 这个数组的size为8192, 这样的处理提高了效率。BufferedInputStream 和 BufferedOutputStream 是处理流(包装流)。
  22. 读文件和写文件都使用了缓冲区,减少了读写次数,从而 提高了效率 2) 当创建这两个缓冲流的对象时时,会创建了内部缓冲数组, 缺省使用 32 字节大小的缓冲区.
  23. 当读取数据时,数据按块读入缓冲区,其后的读操作则直 接访问缓冲区
  24. 当写入数据时,首先写入缓冲区,当缓冲区满时,其中的 数据写入所连接的输出流。使用方法 flush()可以强制将缓 冲区的内容全部写入输出流
  25. 关闭流的顺序和打开流的顺序相反.只要关闭高层流即可,关闭高层流其实关闭的底层节点流
  26. Flush 的使用:手动将 buffer 中内容写入文件
    4.缓冲字符流字节数组流:BufferedReader readLine() 读取一个文本行的数据 BufferedWriter newLine();写入一个行分隔符。使用缓冲字符流是复制文本文件常用的方式。
    5.数据流:DataInputStream 和 DataOutputStream
  27. 提供了可以存取所有 Java 基础类型数据(如:int,double 等)和 String 的方法。
  28. 处理流,只针对字节流,二进制文件
  29. 输入流链和输出流链
  30. 注意:只要关闭上层流即可
    6.转换流:InputStreamReader 和 OutputStreamWriter 处理流 用于将字节流转化成字符流,字符流与字节流之间的桥梁 InputStreamReader 的作用是把 InputStream 转换成 Reader OutputStreamWriter 的作用是把 OutputStream 转换成 Writer 存在将字节流转换成字符流的转换流,因为字符流操作文本 更简单 不存在把字符流转换成字节流的转换流,因为没有必要 System.in 代表标准输入,即键盘输入,是 InputStream 的实例。
    7.对象流:对象序列化 (Serialization) ObjectOutputStream ,序列化写对象,将对象以“二进 制/字节”的形式写到(文件)。ObjectInputStream(反序列化 、读对象),将 Java 对象转换成字节序列(IO 字节流) 对象反序列化 (DeSerialization) 从字节序列中恢复 Java 对象。

猜你喜欢

转载自blog.csdn.net/weixin_44192389/article/details/100985738