在java中如何在1个随机访问文件上有2个dataInputstream
我有 及 其中raf是一个随机访问文件。我想在不使用reset()/mark(int)的情况下,同时读取同一输入流中的两个不同点。因为我不知道如何正确使用它而不给我一个错误 无论如何,如果我使用2个dis,当我尝试读取第二个dis时,我会得到一个EOF异常在java中如何在1个随机访问文件上有2个dataInputstream,java,Java,我有 及 其中raf是一个随机访问文件。我想在不使用reset()/mark(int)的情况下,同时读取同一输入流中的两个不同点。因为我不知道如何正确使用它而不给我一个错误 无论如何,如果我使用2个dis,当我尝试读取第二个dis时,我会得到一个EOF异常 有什么想法吗?在不知道MyFileInputStream是什么的情况下很难判断,但我猜这是因为对每个文件使用了相同的FileDescriptor。相反,您可能需要对同一个文件使用2个RandomAccessFile实例,从每个实例中提取一个新
有什么想法吗?在不知道MyFileInputStream是什么的情况下很难判断,但我猜这是因为对每个文件使用了相同的FileDescriptor。相反,您可能需要对同一个文件使用2个
RandomAccessFile
实例,从每个实例中提取一个新的文件描述符
否则,可以考虑在我的一个实用项目中使用我的代码> RealAccess FieldIsValue<代码>。只要您将一个新的
RandomAccessFile
实例传递到每个RandomAccessFileInputStream
(即使是针对磁盘上完全相同的文件),这肯定会起作用。如果不知道MyFileInputStream
是什么,很难判断,但我猜这是因为对每个文件使用了相同的文件描述符。相反,您可能需要对同一个文件使用2个RandomAccessFile
实例,从每个实例中提取一个新的文件描述符
否则,可以考虑在我的一个实用项目中使用我的代码> RealAccess FieldIsValue<代码>。只要您将
RandomAccessFile
的新实例传递到每个RandomAccessFileInputStream
(即使是针对磁盘上完全相同的文件),这肯定会起作用
DataInputStream dis = new DataInputStream(new BufferedInputStream(new MyFileInputStream(raf.getFD())));
DataInputStream dis2 = new DataInputStream(new BufferedInputStream(new MyFileInputStream(raf.getFD())));