`InputStream` 和 `Reader` 本质上是一样的,`OutputStream`

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

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

  • 换句话说,are InputStreamand Readeressentially same,are OutputStreamand Writeressentially same?


偶然的你
浏览 82回答 2
2回答

泛舟湖上清波郎朗

它们本质上并不相同,但它们对不同类型的数据执行相同类型的操作。InputStream并OutputStream以字节为单位工作。在处理非文本信息(例如图像)时,您会使用它们。Reader并Writer在角色中工作。您会在处理文本信息时使用它们。所以“是”和“不是”。:-)InputStream和Reader都用于读取信息(分别为字节流或字符流),并且OutputStream和Writer都用于写入信息(分别为字节流或字符流)。您使用哪种取决于您处理的数据类型。流是面向字节的。读者/作者以性格为导向。两种数据之间存在桥接类:InputStreamReader从 an 中读取并使用 a (明确提供或按名称提供)InputStream将字节转换为字符。CharSetOutputStreamWriter相反:将字符转换为字节(再次通过 a CharSet)并将字节写入OutputStream....但是大多数Reader/Writer子类读取/写入已经基于字符的源/目标,因此根本不处理字节。例如,StringReader从字符串中读取字符。由于源(字符串)已经是基于字符的,因此Reader永远不会处理字节,只处理字符。

人到中年有点甜

是的,你有正确的想法。标准类InputStreamReader和OutputStreamWriter充当从字节流接口到字符流接口的适配器,只需要指定一个 Charset(通常是 UTF-8)。该 Charset 将用于将传入字节转换为 Java 的 UTF-16 字符类型,因此值得注意的是,从 InputStream 和 Reader 读取的实际字节始终相同是不正确的。InputStream 通常用于读取任何类型的数据,而 Reader 仅适用于读取文本数据。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java