编码转换流
1、需要用到的类
InputStreamReader 把传入的字节流转换成字符流
OutputStreaWriter 把传入的字节流转成字符流
2、常见的编码表
.
3、编码转换测试
1、OutputStreamWriter out=new OutputStreamWriter(new FileOutputStream(“路径”),“编码表”);
2、InputStreamReader in =new InputSreamReader(new FileInputSream(“路径”),“编码表”);
package cn.tedu.encoding;
/*本类用于测试编码转换流 装饰模式 适配器模式*/
import java.io.*;
public class TestEncode {
public static void main(String[] args) {
// f1();
f2();
}
private static void f2() {
InputStreamReader in = null;
try {
in = new InputStreamReader(
//new FileInputStream("1.txt"));
//new FileInputStream("1.txt"),"gbk");
//new FileInputStream("1.txt"), "iso-8859-1");
new FileInputStream("1.txt"), "utf-8");
char[] chars = new char[8192];
int len = in.read(chars);
System.out.println(new String(chars, 0, len));
System.out.println("恭喜您!读取成功");
} catch (Exception e) {
System.out.println("抱歉!读取失败");
e.printStackTrace();
} finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static void f1() {
OutputStreamWriter out = null;
try {
out = new OutputStreamWriter(
//new FileOutputStream("1.txt"),"gbk");
//new FileOutputStream("1.txt"),"iso-8859-1");
new FileOutputStream("1.txt"), "utf-8");
/*一定要保证保存和打开时使用的是同一张码表,就不会出现乱码的问题*/
out.write("海绵宝宝&派大星");
System.out.println("执行成功");
} catch (Exception e) {
System.out.println("执行失败");
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}