gpt4 book ai didi

java - `InputStream`和 `Reader`本质上是相同的, `OutputStream`和 `Writer`本质上是相同的吗?

转载 作者:行者123 更新时间:2023-12-01 17:45:15 25 4
gpt4 key购买 nike

在Java中,InputStreamOutputStream处理byte[],以及ReaderWriter char[]

  • 它们的输入或输出 byte[]char[] 本质上具有相同的值吗? (这是我的印象,因为IO中的char和byte具有相同的值)

  • 换句话说,InputStreamReader 本质上是相同的,OutputStreamWriter 本质上是相同的> 本质上是一样的?

最佳答案

它们本质上并不相同,但它们对不同类型的数据执行相同的操作。

InputStreamOutputStream字节为单位。您可以在处理非文本信息(例如图像)时使用它们。

ReaderWriter字符工作。您在处理文本信息时会使用它们。

所以"is"和“否”。 :-) InputStreamReader 都用于读取信息(分别是字节流或字符流),而 OutputStreamWriter 都用于写入信息(分别是字节流或字符流)。您使用哪个取决于您正在处理什么类型的数据。流是面向字节的。读者/作者以人物为导向。

两种数据之间有桥接类:

  • InputStreamReaderInputStream 读取并使用 CharSet(显式提供或按名称提供的)将字节转换为字符。
  • OutputStreamWriter反之亦然:将字符转换为字节(再次通过 CharSet)并将字节写入 OutputStream

...但大多数 Reader/Writer 子类读取/写入的源/目标已经基于字符,等等根本不处理字节。例如,StringReader从字符串中读取字符。由于源(字符串)已经基于字符,因此Reader不会处理字节,而只处理字符。

关于java - `InputStream`和 `Reader`本质上是相同的, `OutputStream`和 `Writer`本质上是相同的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56184368/

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