欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

字符流中的编码解码问题

程序员文章站 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();


    }
}

相关标签: Java代码