有没有办法询问DataInputStream,是否有要读取的内容? .readByte()只是挂起它,等待读取一个字节:(或者我总是要发送一个Dummy-Byte,以确保它总能看到一些东西?
答案 0 :(得分:4)
dis.available();
返回: 估计可以从此输入流中无阻塞地读取(或跳过)的字节数。
这是你要找的吗?
也在这里检查答案。您可能会获得更多信息。 "available" of DataInputStream from Socket
答案 1 :(得分:1)
看看
public int available() throws IOException
根据文档“返回可以读取的字节数的估计值”
所以你应该致电dis.available()
答案 2 :(得分:0)
当读取文件的末尾时,将引发EOFException。因此,您可以确定没有更多数据可读取。例如:
DataInputStream inputStream = new DataInputStream(new FileInputStream(file));
int data = 0;
try {
while (true) {
data += inputStream.readInt();
}
} catch (EOFException e) {
System.out.println("All data were read");
System.out.println(data);
}