使用Mapped FileChannel
读取文件似乎快如闪电......但我想知道他们是如何做到这一点的?
他们只是简单地读取一个大的(~64kB)缓冲区,然后让我遍历它吗?还是还有更多内容?
我只是对其速度印象深刻,并希望更好地了解其背后的算法。
最佳答案
除非您这样做,否则他们不会读取任何内容,然后您读取的内容基本上是通过操作系统分页系统读取的。打开可能几乎不会花费您任何费用,但重复读取文件的同一部分可能会导致重复的 I/O。没有什么是免费的。
关于java映射FileChannel实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13898641/