IO流 p9 转换流-InputStreamReader 和 OutputStreamWriter

打印 上一主题 下一主题

主题 1813|帖子 1813|积分 5439

转换流-InputStreamReader 和 OutputStreamWriter


  • 介绍

    • InputStreamReader:Reader的子类,可以将InputStream(字节流)包装成Reader(字符流);
    • OutputStreamWriter:Writer的子类,实现将OutputStream(字节流)包装成Writer(字符流);
    • 当处理纯文本数据时,如果使用字符流效率更高,并且可以有效解决中文问题,所以建议将字节流转换成字符流;
    • 可以在使用时指定编码格式(比如 utf-8,gbk,gb2312,ISO8859-1等),解决乱码问题;

  • InputStreamReader

    代码演示:
    1. import java.io.*;
    2. /**
    3. * @author: 86199
    4. * @date: 2023/5/7 17:18
    5. * @description: 演示使用 InputStreamReader 转换流解决中文乱码问题
    6. * 将字节流 FileInputStream 转换成字符流 InputStreamReader,指定编码 gbk/utf-8
    7. */
    8. public class InputStreamReader_ {
    9.     public static void main(String[] args) throws IOException {
    10.         String filePath = "e:\\a.txt";
    11.         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "gbk"));
    12.         //读取
    13.         String s = bufferedReader.readLine();
    14.         System.out.println("读取内容 = " + s);
    15.         //关闭流
    16.         bufferedReader.close();
    17.     }
    18. }
    复制代码
  • OutputStreamWriter

    代码演示:
    1. package com.hsp.transformation;
    2. import java.io.*;
    3. /**
    4. * @author: 86199
    5. * @date: 2023/5/7 17:31
    6. * @description: 演示 OutputStreamWriter 使用,把FileOutputStream 字节流,转成OutputStreamWriter
    7. * 指定处理的编码 gbk/utf-8/utf8
    8. */
    9. public class OutputStreamWriter_ {
    10.     public static void main(String[] args) throws IOException {
    11.         String filePath = "e:\\test.txt";
    12.         String charSet = "utf8";
    13.         OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(filePath), charSet);
    14.         outputStreamWriter.write("只因你太美");
    15.         outputStreamWriter.close();
    16.         System.out.println("文件按照" + charSet + "保存成功");
    17.     }
    18. }
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

伤心客

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表