Java:在单个FileInputStream上使用多个DataInputStream

时间:2015-08-14 13:06:13

标签: java datainputstream

假设我在Java中有以下代码:

        FileInputStream fin = new FileInputStream(filename);
        DataInputStream x = new DataInputStream(fin);
        DataInputStream y = new DataInputStream(fin);
        DataInputStream z = new DataInputStream(fin);

我想使用y.skip(100)z.skip(200)同时从不同位置的文件中读取数据。这会有用吗?我现在正在收到EOF错误......

修改

我确实尝试了以下代码:

        FileInputStream fin1 = new FileInputStream(filename);
        FileInputStream fin2 = new FileInputStream(filename);
        FileInputStream fin3 = new FileInputStream(filename);
        DataInputStream x = new DataInputStream(fin1);
        DataInputStream y = new DataInputStream(fin2);
        DataInputStream z = new DataInputStream(fin3);

这不会产生EOF错误,但仍不确定这是否会返回损坏的数据?...

2 个答案:

答案 0 :(得分:1)

我似乎找到了解决方案。原始文件不起作用,因为它只是每次递增文件指针,无论使用HTTP Status 405 - Request method 'POST' not supported 。相反,我需要创建额外的DataInputStream。工作正常。

答案 1 :(得分:1)

在这种特定情况下,它不会产生损坏的数据,但如果有BufferedInputStream任何地方与它们相关联,那么它就会产生。

真正的问题是为什么你想要这样做?为什么不能使用相同的DataInputStream?