gpt4 book ai didi

java - 如何在java中的1个随机访问文件上有2个dataInputstream

转载 作者:太空宇宙 更新时间:2023-11-04 08:26:31 25 4
gpt4 key购买 nike

我有

    DataInputStream dis = new DataInputStream(new BufferedInputStream(new MyFileInputStream(raf.getFD())));

    DataInputStream dis2 = new DataInputStream(new BufferedInputStream(new MyFileInputStream(raf.getFD())));

其中 raf 是随机访问文件。我想同时从同一输入流中的两个不同点读取数据,而不使用reset()/mark(int)。因为我不知道如何正确使用它而不给我带来错误。

无论如何,如果我使用 2 个 dis,当我尝试从第二个 dis 读取时,我就会收到 EOF 异常。

有什么想法吗?

最佳答案

如果不知道 MyFileInputStream 是什么,就很难判断,但我猜这是因为每个文件都使用了相同的 FileDescripter。相反,也许您需要对同一个文件使用 2 个 RandomAccessFile 实例,从每个实例中提取一个新的文件描述符?

否则,也许可以考虑使用我的实用程序项目之一中提供的 RandomAccessFileInputStream http://blogger.ziesemer.com/2010/02/markutils-io-performant-java-streams.html 。只要将 RandomAccessFile 的新实例传递到每个 RandomAccessFileInputStream 中(即使针对磁盘上完全相同的文件),这肯定会起作用。

关于java - 如何在java中的1个随机访问文件上有2个dataInputstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8398256/

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