Java IO流:(十二)转换流

一、转换流

  1、转换流概念

    转换流提供了字节流和字符流之间的转换。

  2、Java 中的转换流

    Java API 提供了两个转换流:

InputStreamReader:将InputStream转换为Reader

OutputStreamWriter:将Writer转换为OutputStream

    InputStreamReader:将一个字节的输入流转换为字符的输入流

    OutputStreamWriter:将一个字符的输出流转换为字节的输出流

  3、转换流好处

    作用:提供字节流与字符流之间的转换

    字节流中的数据都是字符时,转成字符流操作更高效。

    很多时候我们使用转换流来处理文件乱码问题,实现编码和解码的功能。

 

二、不同编码引发的问题

  当我们使用 UTF-8 编码保存文件时,用 UTF-8 再次读取不会出现任何问题。但是,当使用其他的编码(如GBK)读取文件时,就会出现乱码现象。

  Demo:

 1 public class ReaderDemo {
 2     public static void main(String[] args) throws IOException {
 3         FileReader fileReader = new FileReader("E:\File_GBK.txt");
 4         int read;
 5         while ((read = fileReader.read()) != ‐1) {
 6             System.out.print((char)read);
 7         }
 8          fileReader.close();
 9     }
10 } 
11 输出结果:
12 ���    

三、转换流理解图解

  转换流是字节与字符间的桥梁!

    

    转换流的原理

四、字符编码

    编码:字符串 —>字节数组

  解码:字节数组—> 字符串

  转换流的编码应用

    (1)可以将字符按指定编码格式存储;

    (2)可以对文本数据按指定编码格式来解读;

    (3)指定编码表的动作由构造器完成。

五、计算机字符编码

    计算机字符编码

原文地址:https://www.cnblogs.com/niujifei/p/14848238.html