gpt4 book ai didi

java - 我应该先转换字节流,缓冲流还是字符流?

转载 作者:行者123 更新时间:2023-12-02 05:12:53 25 4
gpt4 key购买 nike

要获取给定字节流的缓冲字符流,我应该先将字节流转换为缓冲流还是字符流?

  1. 给定一个 OutputStream 对象 os(例如 FileOutputStream对象或 System.out),似乎有两种方法可以获取缓冲字符流:

    new BufferedWriter(new OutputStreamWriter(os));

    new OutputStreamWriter(new BufferedOutputStream(os));

    它们之间有什么区别?

  2. 给定一个 InputStream 对象 is (例如 FileInputStream 对象或 System.in ),似乎有两种方法可以获取缓冲的字符流:

    new BufferedReader(new InputStreamReader(is));

    new InputStreamReader(new BufferedInputStream(is));

    它们之间有什么区别?

最佳答案

  1. 如 javadoc 中所述 OutputStreamWriter

The characters passed to the write() methods are not buffered.
For top efficiency, consider wrapping an OutputStreamWriter within a BufferedWriter so as to avoid frequent converter invocations. For example:
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));

由于转换后的结果字节会累积在缓冲区中,因此无需在 OutputStreamWriter 之后通过管道传入 BufferedStream

因此,传统的方法是使用:

new BufferedWriter(new OutputStreamWriter(os));
  • InputStreamReader 的类似原因
  • 用途:

    new BufferedReader(new InputStreamReader(is));

    关于java - 我应该先转换字节流,缓冲流还是字符流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56315444/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com