Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中如何在1个随机访问文件上有2个dataInputstream_Java - Fatal编程技术网

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

在java中如何在1个随机访问文件上有2个dataInputstream,java,Java,我有 及 其中raf是一个随机访问文件。我想在不使用reset()/mark(int)的情况下,同时读取同一输入流中的两个不同点。因为我不知道如何正确使用它而不给我一个错误 无论如何,如果我使用2个dis,当我尝试读取第二个dis时,我会得到一个EOF异常 有什么想法吗?在不知道MyFileInputStream是什么的情况下很难判断,但我猜这是因为对每个文件使用了相同的FileDescriptor。相反,您可能需要对同一个文件使用2个RandomAccessFile实例,从每个实例中提取一个新

我有

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

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


有什么想法吗?

在不知道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())));