【问题标题】:What is the relation between InputStream, BuffreredInputStream, InputStreamReader and BufferedReader? [closed]InputStream、BufferedInputStream、InputStreamReader和BufferedReader是什么关系? [关闭]
【发布时间】:2015-11-17 11:00:35
【问题描述】:

我总是很困惑何时处理我的输入数据,如何处理。不同的时间我找到不同的解决方案。我也不清楚他们的层次结构。

【问题讨论】:

  • 你能再具体点吗?你想知道什么?
  • InputStream 读取字节,Reader 读取字符。以Buffered 开头的任何内容都使用缓冲区。
  • 有时输入是用 inputStream 只读的,有时我发现 BufferedInputStream 是为了读取输入而创建的。我想知道什么时候使用什么以及为什么?以及它们之间是否存在任何关系。
  • inputStream-->readByte inputStreamReader-->直接读取char(你可以同时说inputstream 8bit)。 BufferedInputstream-->仅读取字节,但会填充缓冲区以减少系统调用..

标签: java inputstream bufferedreader bufferedinputstream


【解决方案1】:



InputStream 是所有输入流和读取器的父类。具有 Stream 关​​键字的类将使用字节,而具有 Reader 关键字的类将使用字符。

缓冲区是这些流的包装器,以减少系统调用并提高性能和读取速度。

非缓冲流每次都返回单个字节,而缓冲流在缓冲区满之前不会返回。

例如,如果您使用 BufferedReader,则可以使用 readLine() 读取整行,但在非缓冲流,您必须使用read() 方法读取单个字符。

【讨论】:

  • 非常感谢 Kansara。每次我到处寻找这些东西时,他们都会解释它的实现而不是我应该使用的原因。
猜你喜欢
  • 2012-08-25
  • 2018-05-01
  • 1970-01-01
  • 2012-04-06
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
  • 1970-01-01
  • 2022-08-10
相关资源
最近更新 更多