InputStream、BuffreredInputStream、InputStreamReader 和 BufferedReader 之间有什么关系?

What is the relation between InputStream, BuffreredInputStream, InputStreamReader and BufferedReader?

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



InputStream 是所有输入流和读取器的父级 class。具有 Stream 关​​键字的 类 将处理字节,而具有 Reader 关键字的 classes 将处理字符。

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

非缓冲流每次 return 单字节,而缓冲流不会 return 直到缓冲区变满。

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