用来作为桥梁,把字节流转成字符流的桥梁。
用来解决字符流读写乱码问题。
工具类
OutputStreamWriter
是字节流通向字符流的桥梁
构造方法
OutputStreamWriter(OutputStream out, String charsetName)
OutputStreamWriter(OutputStream out)
InputStreamReader
是字节流通向字符流的桥梁
构造方法
InputStreamReader(InputStream in)
InputStreamReader(InputStream in, String charsetName)
字符编码表
测试案例
//编码转换流的测试
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();
}
}
}