JavaIO流概念详解

  1. IO解决的问题:解决设备与设备之间的数据传输问题。 比如:硬盘------->内存     内存-------->硬盘

  2. 一、字节流

  3. 输入字节流:
  4. InputStream   所有输入字节流的基类。抽象类。
  5. FileInputStream  读取文件输入字节流。
  6. BufferedInputStream  缓冲输入字节流。该类内部其实就是维护了一个8kb字节数组而已。该类出现的目的是为了提高读读取文件数据的效率。

  7. 输出字节流:
  8. OutputStream   所有输出字节流的基类。抽象类。
  9. FileOutputStream  向文件输出数据的输出字节流。
  10. BufferedOutputStream   缓冲输出字节流。该类出现的目的是为了提高向文件写数据的效率。该类内部其实也是维护了一个8kb的字节数组而已。

  11. 二、什么情况下使用个字节流
  12. 读取到数据不需要经过编码或者解码的情况下这时候使用字节流。比如:图片数据

  13. 字符流=字节流+编码(解码)

  14. 三、字符流

  15. 输入字符流:
  16. Reader   所有输入字符流的基类。抽象类。
  17. FileReader 读取文件字符的输入字符流。
  18. BufferedReader 缓冲输入字符流。该类出现的目的是为了提高读取文件字符的效率并且扩展了功能(readLine()),它内部其实就是维护了一个8192个长度的字符数组。

  19. 输出字符流:
  20. Writer  所有输出字符流的基类。抽象类。
  21. FileWriter  向文件输出字符数据的输出字符流。
  22. BufferedWriter  缓冲输出字符流。该类出现的目的是为了提高写文件字符的效率并且扩展了功能(newLine())。

  23. 四、什么情况下使用字符流

  24. 如果读写的都是字符数据,这时候我们就使用字符流。

  25. 五、转换流

  26. 输入字节流的转换:InputStreamReader
  27. 输出字节流的转换流:OutputStreamWriter

  28. 六、转换流的作用:

  29. 1、可以把对应的字节流转换成字符流使用。
  30. 2、可以指定编码表进行读写文件的数据。
  31. 七、FileReader、FileWriter 类

  32.  FileReader、FileWriter这两个类默认是使用的gbk编码表。不能由你指定编码表读写文件数据。

  33. 八、Java流类图结构:
  34. JavaIO流概念详解_第1张图片
  35.                           注:图片来自:http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html

你可能感兴趣的:(JavaIo流)