gpt4 book ai didi

java - 为什么 EOFException 主要由数据输入流使用?

转载 作者:行者123 更新时间:2023-11-30 04:23:04 25 4
gpt4 key购买 nike

来自 Java API

public class EOFException extends IOException

Signals that an end of file or end of stream has been reached unexpectedly during input.

This exception is mainly used by data input streams to signal end of stream. Note that many other input operations return a special value on end of stream rather than throwing an exception.

那么为什么数据输入流与其他输入操作如此不同?为什么它不像其他输入操作一样返回一个特殊值来表示流的结束?因为我认为异常应该只在真正特殊的情况下使用。

最佳答案

需要带外返回值来发出 EOS 信号。返回基元时会使用所有带内值,因此没有可用的带外值,因此它必须是一个异常(exception)。

同样适用于ObjectInput.readObject()null 是一个带内值,因此不能用于发出 EOS 信号。

这与 InputStream.read() 不同,后者返回 -1 或字节值 -128..127。在这种情况下,-1 是带外的。

假设 readUTF() 抛出 EOFException 与其他方法对称,尽管它可能在 EOS 上返回 null。

关于java - 为什么 EOFException 主要由数据输入流使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16513498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com