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吗?