当前位置:  开发笔记 > 编程语言 > 正文

何时会在JAVA的流中发生EOFException

如何解决《何时会在JAVA的流中发生EOFException》经验,为你挑选了2个好方法。

我正在使用DataInputStream并且有一个关于EOFExceptions的问题.

根据java文档:

表示在输入期间意外到达文件末尾或流末尾的信号.

此异常主要由数据输入流用于信号流的结束.请注意,许多其他输入操作在流末尾返回特殊值而不是抛出异常.

这是否意味着当生成EOFException时,流不会再次打开?这是否意味着你永远不会期待它的更多数据?

如果输出流连接到输入流并且调用了outputstream.close(),输入流是否会收到EOFException或IOException?

IOException被描述为:

表示发生某种I/O异常的信号.此类是由失败或中断的I/O操作产生的一般异常类.

输出流上的close是否会在datainputstream端产生EOFException或IOException?



1> Pyrolistical..:

关键词是出乎意料的.

如果您使用DataInputStream并读取4字节整数但流中只剩下3个字节,您将获得EOFException.

但是如果你在流的末尾调用read(),你将只返回-1并且没有异常.



2> user207421..:

当您到达流的末尾(文件末尾,或对等关闭连接):

read() 返回-1

readLine() 返回null

readXXX()对于任何其他X投掷EOFException.

流仍然是打开的,但您应该停止阅读并关闭它.

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有