[英]What is actually difference between InputStream and Reader in 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
(所有字符输出类)。 如果您要处理文本文件或其他文本流,则这些类很有用。 这些类也是Buffered
和Non-Buffered
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.