如何在实际阅读之前检查EOF?

时间:2016-09-08 12:31:23

标签: java datainputstream

DataInputStream dis = new DataInputStream(con.getInputStream());
while(dis.available() > 0 {
  long mydata = dis.readLong();
   // read more data for a record
  ...
   workOnOneRecord();    
}

我读取了多个二进制变量大小的数据记录,EOF会在一组数据的末尾发生。 我知道如果数据以块的形式到达,这个available()是错误的吗? (可能会发生有更多数据待处理,发件人还没有关闭流等等?)

这是用于通过网络连接进行读取,没有预先知道的文件大小或类似内容。

我想将EOFException保留为错误情况,意外地运行到EOF。在下一次阅读之前会有while (! dis.EOF() ) { ... }之类的东西会返回EOF吗?

0 个答案:

没有答案