gpt4 book ai didi

java - 阅读器与缓冲阅读器

转载 作者:行者123 更新时间:2023-11-30 06:25:45 25 4
gpt4 key购买 nike

假设缓冲区大小为BufferedReadercbuf 相同。

我知道每次调用本地调用来读取每个字符时,FileReader 上的简单 read() 调用速度较慢。

FileReader 上的 read(char[] cbuf) 将读取 cbuf 大小的字符,仅需一次 native 调用,类似于BufferedReader 的那个。

如果 read(char[] cbuf) 方法在 FileReaderBufferedReader 上使用,会有任何性能差异吗。

最佳答案

A read(char[] cbuf) on the FileReader would read cbuf size of chars with just one native call which is similar to that of the BufferedReader.

这是不正确的。没有读取到 Java char[] 数组的 native 调用。 FileReader 实际上是 InputStreamReader 层叠在 FileInputStream 上。 InputStreamReader 运行一个 8k 内部缓冲区。因此一次最多读取 8k 文件。

So would there be any performance difference if read(char[] cbuf) method is being used on FileReader vs BufferedReader.

您会读到一些观点,认为由于双缓冲,BufferedReader 读取缓冲区的速度较慢,但​​它们是不正确的。 BufferedReader 检测到这种情况并在可能的情况下直接进行读取。

简而言之,您不会注意到差异。

关于java - 阅读器与缓冲阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15210578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com