Day10_06目标:字符输入转换流InputStreamReader的使用

目标:字符输入转换流InputStreamReader的使用

结构:

字节流字符流
字节输入流字节输出流字符输入流字符输出流
InputStreamOutputStreamReaderWriter(抽象类)
FileInputStreamFileOutputStreamFileReaderFileWriter(实现类,低级流,原始流)
BufferedInputStreamBufferedOutStreamBufferedReaderBufferedWriter(实现类,缓冲流)
InputStreamReaderrOutputStreamWriter

字符输入转换流InputStreamReader:

​ – 作用:可以把原始的字节流按照当前默认的代码编码转换成字符输入流。
​ 可以把原始的字节流按照指定编码转换成字符输入流
​ – 构造器:
​ public InputStreamReader(InputStream is):可以使用当前代码默认编码转换成字符流,几乎不用!
​ public InputStreamReader(InputStream is,String charset):可以指定编码把字节流转换成字符流

小结:

​ 字符输入转换流可以指定编码把字节流转换成字符输入流从而
​ 解决了:不同编码读取乱码的问题。

​ 只要保证了读字符没有乱码,那么以后就永远不会乱码!!

public class InputStreamReaderDemo01 {
    public static void main(String[] args) throws Exception {
        // 我爱你:oo oo oo
        InputStream is = new FileInputStream("D:\\itcast\\网络编程公开课\\Netty.txt");
        // 把原始的字节流按照当前默认的代码编码转换成字符输入流:UTF-8
        // Reader fr = new InputStreamReader(is);

        // 可以把原始的字节流按照指定编码转换成字符输入流
        Reader fr = new InputStreamReader(is,"GBK");

        // 把字符输入流包装成缓冲字符输入流
        BufferedReader br = new BufferedReader(fr);
        // 定义一个字符串变量存储行数据
        String line ;
        while((line = br.readLine())!=null){
            System.out.println(line);
        }
    }
}

字符输出转换流:OutputStreamWriter

​ – 作用:可以指定编码把字节输出流转换成字符输出流。
​ – 构造器:
​ public OutputStreamWriter(OutputStream os):用当前默认编码UTF-8把字节输出流转换成字符输出流
​ public OutputStreamWriter(OutputStream os,String charset):指定编码把字节输出流转换成字符输出流

小结:

​ OutputStreamWriter字符输出转换流可以指定编码把字节输出流转换成字符输出流
​ 从而可以实现:指定编码写内容出去。

public class OutputStreamWriterDemo02 {
    public static void main(String[] args) throws Exception {
        // 写数据
        OutputStream os = new FileOutputStream("src/dlei06.txt");
        // 用当前默认编码UTF-8把字节输出流转换成字符输出流
        // Writer fw = new OutputStreamWriter(os);

        // 指定编码把字节输出流转换成字符输出流
        Writer fw = new OutputStreamWriter(os,"GBK");

        fw.write("我在黑马快乐的黑老师!");
        fw.close();

    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值