来自Java
公共类EOFException扩展IOException 在输入期间意外到达文件结束或流结束的信号。这个例外是,主要由数据流用来发送流端信号。注意,许多其他输入操作在流结束时返回一个特殊值,而不是抛出异常。
那么,为什么数据输入流与其他输入操作如此不同呢?为什么它不像其他输入操作一样返回一个特殊值来指示流的结束?因为我认为例外只适用于非常特殊的情况。
发布于 2013-05-13 01:12:24
信号EOS需要带外返回值.所有带内值都是在返回原语时使用的,因此没有可用的带外值,因此必须是例外。
ObjectInput.readObject()
也是如此。null
是一个带内值,因此不能用于向EOS信号.
这与InputStream.read()
不同,后者返回-1或字节值-128.127。在这种情况下-1是在乐队之外。
一种假设是,readUTF()
抛出EOFException
以实现与其他方法的对称性,尽管它可能在EOS中返回null。
https://stackoverflow.com/questions/16513498
复制相似问题