首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么EOFException主要被数据流所使用?

为什么EOFException主要被数据流所使用?
EN

Stack Overflow用户
提问于 2013-05-13 00:45:43
回答 1查看 375关注 0票数 1

来自Java

公共类EOFException扩展IOException 在输入期间意外到达文件结束或流结束的信号。这个例外是,主要由数据流用来发送流端信号。注意,许多其他输入操作在流结束时返回一个特殊值,而不是抛出异常。

那么,为什么数据输入流与其他输入操作如此不同呢?为什么它不像其他输入操作一样返回一个特殊值来指示流的结束?因为我认为例外只适用于非常特殊的情况。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-13 01:12:24

信号EOS需要带外返回值.所有带内值都是在返回原语时使用的,因此没有可用的带外值,因此必须是例外。

ObjectInput.readObject()也是如此。null是一个带内值,因此不能用于向EOS信号.

这与InputStream.read()不同,后者返回-1或字节值-128.127。在这种情况下-1是在乐队之外。

一种假设是,readUTF()抛出EOFException以实现与其他方法的对称性,尽管它可能在EOS中返回null。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16513498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档