字符流中的编码解码问题

字符流中的编码解码问题

  1. 字符抽象基类
    Reader:字符输入流的基类
    Writer:字符输出流的基类

  2. 字符流中和编码解码问题相关的两个类
    字符流=字节流+指定编码

以OutputStreamWriter为主
柏维怡我爱你

  • public class InputStreamReader extends ReaderInputStreamReader是从字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符 。它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。
    柏维怡我爱你

  • public class OutputStreamWriter extends WriterOutputStreamWriter是字符的桥梁流以字节流:向其写入的字符编码成使用指定的字节charset 。 它使用的字符集可以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集
    柏维怡我爱你

  1. 汉字的存储:
    如果是GBK编码是2个字节
    如果是UTF-8编码,占用3个字节

以图文和代码的形式讲解

图文:
柏维怡我爱你
代码:

package Demo;

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
public class Demo {
    public static void main(String[] args) throws IOException {
         //字符流=字节流+指定编码

        //创建一个默认字符集输出解码
        OutputStreamWriter ow = new OutputStreamWriter(new FileOutputStream("D:\\item\\Hellow\\java.txt"),"UTF-8");
        ow.write("中国\r\n");
        ow.write("陕西省西安市");

        //刷新流
        ow.flush();

        //创建一个默认字符集输入编码
        InputStreamReader ir = new InputStreamReader(new FileInputStream("D:\\item\\Hellow\\java.txt"),"UTF-8");

        //这里的读写或者复制跟字节流没有区别------一次复制一个字符形式
        int by;
        while ((by=ir.read())!=-1){
            System.out.print((char)by);
        }


        //释放资源
        ow.close();
        ir.close();
    }
}

输出的内容
柏维怡我爱你

字符流和字节流的读取复制功能几乎是一样,可以有效方便我们记忆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发热的嘤嘤怪(2003计科胜胜同学)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值