m0_72618563 2023-01-14 09:29 采纳率: 55.6%
浏览 20
已结题

Java字节字符流的互相转换

问题遇到的现象和发生背景

在学习Java的IO流的时候发现一个类:InputStreamReader,这个类可以指定读取的字符集,也是字节流通向字符流的桥梁,于是想到有没有字符流通向字节流的类呢,于是查看API

遇到的现象和发生背景,请写出第一个错误信息

发现了OutputStreamWriter这个类,查看API发现描述是这样

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节
但是构造函数参数传入的却是字节流
OutputStreamWriter(OutputStream out) 
OutputStreamWriter(OutputStream out, Charset cs) 
OutputStreamWriter(OutputStream out, CharsetEncoder enc) 
OutputStreamWriter(OutputStream out, String charsetName) 
运行结果及详细报错内容

想了下,OutputStreamWriter本身就是字符流啊,传入一个字节流不是转换成字符流了吗?

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

但是我想的是有没有字符流转成字节流的类没有,难道说没有字符转成字节的必要吗

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-01-14 12:23
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • ShowMeAI 2023-01-14 09:38
    关注

    在Java中,字符流和字节流本质上是不同的两种类型的流。字符流是用来处理文本文件的,它的操作单位是字符,而字节流则是用来处理二进制文件的,它的操作单位是字节。


    因此,在Java中,如果要将字符流转换成字节流,则需要使用字符流通向字节流的桥梁,即InputStreamReader和OutputStreamWriter。这两个类都可以将字符流转换成字节流,InputStreamReader可以将字符流转换成字节流并读取,而OutputStreamWriter可以将字符流转换成字节流并写入。


    因此,Java中并没有将字符流直接转换成字节流的类,必须通过InputStreamReader和OutputStreamWriter来实现这一转换。

    String str = "Hello, OutputStreamWriter!";
    try (OutputStream out = new FileOutputStream("output.txt");
         OutputStreamWriter osw = new OutputStreamWriter(out)) {
        osw.write(str);
        osw.flush();
    } catch (IOException e) {
        e.printStackTrace();
    }
    
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 1月14日

悬赏问题

  • ¥15 matlab+波形匹配算法
  • ¥15 转录组分析做聚类树图时癌旁组被分到了癌组
  • ¥15 大一Python字典
  • ¥15 multisim电路设计(相关搜索:设计报告)
  • ¥15 PC-lint Plus
  • ¥15 gpl24676注释
  • ¥15 php5.3内存泄露
  • ¥15 DigSilent如何复制复合模型到自己案例?
  • ¥15 求日版华为b610s-77a 官方公版固件,有偿
  • ¥15 关于#java#的问题,请各位专家解答!(相关搜索:java程序)