java字符流分析

java字符流常用类继承架构.jpg

InputStream,OutputStream是用来读入与写出字节数据,若实际上处理的是字符数据,使用InputStream,OutputStream就得对照编码表,在字符与字节之间进行转换。所需Java SE API已经提供了相关的输入/输出字符处理类,这就是Reader和Writer。

字符处理装饰器

就像InputStream,OutputSterm 有一些装饰器类,可以对InputStream,OutputStream装饰增加额外功能,Reader,Writer也有一些装饰器类可供使用。

  1. InputStreamReader 与 OutputStreamWriter
    如果如果串流处理的字节数据,实际上代表某些字符的编码数据,而你想要将这些字节数据转换为对应的编码字符, 可以使用 InputStreamReader 、 OutputStreamWriter 对串流数据打包。
    在建立 InputStreamReader 与 OutputStreamWriter 时, 可以指定编码, 如果没有指定编码,则以 JVM 启动时所获取的默认编码来做字符转换。

  2. BufferedReader 与 BufferedWriter
    正如 BufferedInputStream 、 BufferedOutputStream 为 InputStream 、 OutputStream 提供缓冲区作用,以改进输入 / 输出的效率, BufferedReader 、 BufferedWriter 可对 Reader 、 Writer 提供缓冲区作用,在处理字符输入 / 输出时,对效率也会有所帮助。

  3. PrintWriter
    PrintWriter 与 PrintStream 使用上极为类似,不过除了可以对 OutputStream 打包之外,PrintWriter 还可以Writer 进行打包,提供 print() 、 println() 、 format() 等方法。


参考资料

Java JDK 7学习笔记

你可能感兴趣的:(java字符流分析)