gpt4 book ai didi

java - 缓冲的 RandomAccessFile java

转载 作者:IT老高 更新时间:2023-10-28 21:00:14 27 4
gpt4 key购买 nike

RandomAccessFile 对于随机访问文件非常慢。您经常阅读有关在其上实现缓冲层的信息,但在网上找不到这样做的代码。

所以我的问题是:知道这个类的任何开源实现的你们会分享一个指针还是分享你自己的实现?

如果这个问题能成为关于这个问题的有用链接和代码的集合,那就太好了,我敢肯定,许多人都共享这些问题,而 SUN 从未正确解决过这些问题。

请不要引用 MemoryMapping,因为文件可能比 Integer.MAX_VALUE 大。

最佳答案

您可以使用类似的代码从 RandomAccessFile 创建一个 BufferedInputStream,

 RandomAccessFile raf = ...
FileInputStream fis = new FileInputStream(raf.getFD());
BufferedInputStream bis = new BufferedInputStream(fis);

注意事项

  1. 关闭 FileInputStream 将关闭 RandomAccessFile,反之亦然
  2. RandomAccessFile 和 FileInputStream 指向同一个位置,因此从 FileInputStream 中读取会推进 RandomAccessFile 的文件指针,反之亦然

可能你想使用它的方式是这样的,

RandomAccessFile raf = ...
FileInputStream fis = new FileInputStream(raf.getFD());
BufferedInputStream bis = new BufferedInputStream(fis);

//do some reads with buffer
bis.read(...);
bis.read(...);

//seek to a a different section of the file, so discard the previous buffer
raf.seek(...);
bis = new BufferedInputStream(fis);
bis.read(...);
bis.read(...);

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

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