字符流中的编码解码问题
程序员文章站
2024-02-22 15:34:10
...
package it_02;
import java.io.*;
/*
字符流抽象基类
*Reader : 字符输入流的抽象类
*Writer : 字符输出流的抽象类
InputStreamReader:是从字节流到字符流的桥梁
它读取字节,并使用指定的编码将其解码为字符
它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集
OutputStreamWriter:是从字符流到字节流的桥梁
是从字符流到字节流的桥梁,使用指定的编码将写入的字符编码为字节
它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集
*/
public class ConversionStreamDemo {
public static void main(String[] args) throws IOException {
// OutputStreamWriter(OutputStream out)创建一个使用默认字符编码的OutStreamWriter
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("myCharStream\\osw.txt"));
// OutputStreamWriter(OutputStream out , String CharsetName)创建一个使用命名字符集的OutputStreamWriter
// OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("myCharStream\\osw.txt"),"UTF-8");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("myCharStream\\osw.txt"),"GBK");
osw.write("中国");
osw.close();
// InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。
// InputStreamReader isr = new InputStreamReader(new FileInputStream("myCharStream\\osw.txt"));
// InputStreamReader(InputStream in, String charsetName) 创建一个使用命名字符集的InputStreamReader。
// InputStreamReader isr = new InputStreamReader(new FileInputStream("myCharStream\\osw.txt"),"UTF-8");
InputStreamReader isr = new InputStreamReader(new FileInputStream("myCharStream\\osw.txt"),"GBK");
//一次读取一个字符数据
int ch;
while((ch= isr.read()) != -1) {
System.out.print((char)ch);
}
isr.close();
}
}
上一篇: C语言预处理指令#error
下一篇: C语言--预处理