Java中的流和读者有什么区别?

bra*_*boy 15 java stream

今天我得到了这个问题,我认为我的回答非常糟糕.我说流是一种流动的数据,而读者是一种从中读取的技术,即静态数据.我知道这是一个糟糕的答案,所以请用Java中的示例向我提供这两者之间的明显差异和定义.

谢谢.

bra*_*ter 18

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

javadocs是你的朋友,解释了它的不同之处.Reader,InputStream

  • 不说RTFM. (4认同)
  • RTFM ==阅读手册 (4认同)

Tom*_*and 11

正如其他人所说,每个用例略有不同(即使它们通常可以互换使用)

由于读者是用于阅读字符,因此当您处理具有文本性质的输入(或表示为字符的数据)时,它们会更好.我说得更好因为读者(在典型用法的上下文中)本质上是具有方便读取字符输入的方法的流.


Pet*_*aný 9

Stream用于读取字节,Reader用于读取字符.一个字符可能需要一个字节或更多,具体取决于字符集.


Sac*_*mar 6

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

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