1. BufferedInputStream/BufferedReader 的缓冲机制与 mark/reset 语义的边界限制
BufferedInputStream/BufferedReader 的缓冲机制与 mark/reset 语义的边界限制是什么?
- 缓冲机制
- mark/reset 语义
- 边界限制
BufferedInputStream 与 BufferedReader 通过内部缓冲数组减少底层 I/O 调用次数,提升性能。mark/reset 用于可回退读取:mark(readlimit) 记录当前位置,reset() 回到 mark 位置。边界限制:mark 的 readlimit 是"在 mark 之后最多可读多少字节仍能 reset",若读取超过 readlimit 字节,mark 可能失效,reset 抛 IOException;BufferedReader 的 readlimit 是字符数;缓冲大小有限,mark 后读取超过缓冲重填时,若超过 readlimit 可能失效。readlimit 需设置为足够大以保证 reset 有效。理解缓冲机制与 mark/reset 的 readlimit 边界限制(超过则失效)是本题关键。
核心是缓冲减少 I/O 调用,mark/reset 受 readlimit 限制(超过则失效)。理解边界限制是本题关键。