转换流

用来作为桥梁,把字节流转成字符流的桥梁。

用来解决字符流读写乱码问题。

工具类

OutputStreamWriter

是字节流通向字符流的桥梁

构造方法

OutputStreamWriter(OutputStream out, String charsetName)

OutputStreamWriter(OutputStream out)  

InputStreamReader

是字节流通向字符流的桥梁

构造方法

InputStreamReader(InputStream in)

InputStreamReader(InputStream in, String charsetName)

字符编码表

14--API-转换流_编程语言

测试案例

//编码转换流的测试
public class Test5_Decode {
    public static void main(String[] args) {
//     method();//输出的转换流
       method2();//读取的转换流
    }
    private static void method2() {

       try {
           //1,创建转换对象
           //第二个参数可以设置编码表,解决乱码现象
           //文件保存时使用的是gbk编码,如果用utf-8就会乱码
//         BufferedReader in = new BufferedReader(
//                      new InputStreamReader(
//                      new FileInputStream("1.txt"),"utf-8"));//乱码
           BufferedReader in = new BufferedReader(
                  new InputStreamReader(
                         new FileInputStream("1.txt"),"gbk"));
           //2,读取一行数据
           String line = in.readLine();//子类BufferedReader的特有方法
           System.out.println(line);
           //3,释放资源
			in.close();
       }catch(Exception e) {
           e.printStackTrace();
       }
    }
    private static void method() {
       try {
           // 1,创建转换流输出对象,OutputStreamWriter是字节流通向字符流的桥梁
           //第二个参数可以设置编码表,解决乱码现象
           //写出去的文件如果使用了utf-8表,打开时,使用了默认的gbk编码表,就会出现乱码
//         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("1.txt"), "utf-8");
           OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("1.txt"), "gbk");
           // 2,开始写出数据
           // 当数据的保存方式和打开方式,使用的不是一张表时,就会出现乱码!!
           out.write("大家好,我是渣渣辉");
           // TODO 3,释放资源
           out.flush(); 
       } catch (Exception e) {
           e.printStackTrace();
       }
    }
}