繁体   English   中英

Java流和阅读器之间有什么区别?

[英]What is the difference between a stream and a reader in Java?

今天我有这个问题,我认为我回答的很不好。 我说过流是流动的数据,而阅读器是一种我们从中读取的技术,它是静态数据。 我知道这是一个糟糕的答案,因此请通过Java示例为我提供这两者之间的清晰区别和定义。

谢谢。

InputStream是面向字节的。 读者是面向角色的。

javadocs是您的朋友,解释了两者之间的区别。 阅读器为InputStream

正如其他人所说,每种情况的用例略有不同(即使它们经常可以互换使用)

由于阅读器用于阅读字符,因此当您处理文本性质的输入(或以字符表示的数据)时,阅读器会更好。 我之所以说得更好,是因为Reader(在典型用法的上下文中)本质上是具有易于促进阅读字符输入的方法的流。

流用于读取字节,读取器用于读取字符。 一个字符可能占用一个字节或更多个字节,具体取决于字符集。

流类是面向字节的类,这意味着所有InputStream类(缓冲和非缓冲)都从流中逐字节读取数据,而所有OutputStream (缓冲和非缓冲)都将字节逐字节地写入数据流。 当数据量较小或处理二进制文件(例如图像)时,流类很有用。

另一方面, Reader/Writer是基于字符的类。 这些类可以同时从流中读取或写入一个字符。 这些类扩展了java.io.Reader (所有字符输入类)或java.io.Writer (所有字符输出类)。 如果您要处理文本文件或其他文本流,则这些类很有用。 这些类也是BufferedNon-Buffered

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM