假设我在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错误,但仍不确定这是否会返回损坏的数据?...
答案 0 :(得分:1)
我似乎找到了解决方案。原始文件不起作用,因为它只是每次递增文件指针,无论使用HTTP Status 405 - Request method 'POST' not supported
。相反,我需要创建额外的DataInputStream
。工作正常。
答案 1 :(得分:1)
在这种特定情况下,它不会产生损坏的数据,但如果有BufferedInputStream
任何地方与它们相关联,那么它就会产生。
真正的问题是为什么你想要这样做?为什么不能使用相同的DataInputStream?