检查DataInputStream是否包含内容

时间:2014-01-19 12:02:07

标签: java sockets networking port datainputstream

有没有办法询问DataInputStream,是否有要读取的内容? .readByte()只是挂起它,等待读取一个字节:(或者我总是要发送一个Dummy-Byte,以确保它总能看到一些东西?

3 个答案:

答案 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);
    }