如果在空的inputStream上调用ObjectInputStream的readObject()会发生什么?<



如果在不包含数据的ObjectInputStream上调用readObject函数会发生什么?

会抛出I/O异常吗?

我正在尝试使用PipedInputStream与ObjectInputStream和ObjectOutputStream包装的线程读取和写入数据。

是的,它将抛出IOException,因为它不能反序列化你正在请求的对象

https://docs.oracle.com/javase/8/docs/platform/serialization/spec/exceptions.html

我尝试了一下,readObject阻塞了线程,直到数据被添加到流中,但是如果我在阻塞状态下关闭流,它会抛出EOFException

当你在DataInputStream上调用readObject()时,它会阻塞,直到有数据可读。如果在流被阻塞时关闭流,它将抛出EOFException。这是因为DataInputStream将尝试从流中读取数据,但是流将被关闭,并且没有数据可读。

相关内容

最新更新