提问人:joker 提问时间:7/30/2023 更新时间:7/30/2023 访问量:53
BufferedInputStream 顶部的 BufferedReader 与 FileInputStream 顶部的 BufferedReader
BufferedReader on top of BufferedInputStream VS BufferedReader on top of FileInputStream
问:
如果我们有以下情况,是否有任何性能提升:
BufferedReader reader = new BufferedReader(new InputStreamReader(new BufferedInputStream(new FileInputStream("SOME_FILE")), StandardCharsets.UTF_8))
请注意,我添加了 ,这是不寻常的,在我的经验中。BufferedInputStream
通常,它与添加的中间缓冲输入流一起使用:
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(""), StandardCharsets.UTF_8))
如果存在性能差异,如何衡量?
我尝试的是使用两种方法读取 ~30 MB 文本文件,每种方法 3 次。
令我惊讶的是,在没有缓冲的情况下,输入流比缓冲的对应器快约 10%。
我不知道是否在某些情况下,缓冲版本比其他版本更胜一筹,或者它只是一个冗余缓冲,导致的开销大于它的用处。
答: 暂无答案
上一个:无法执行多部分项的清理
评论
BufferedReader
8192
try (BufferedReader in = Files.newBufferedReader(Path.of("x.txt"), StandardCharsets.UTF_8)) {...}