是什么在Java中抛出了一个IOException?

2022-08-31 17:45:10

java.io.IOException似乎是最常见的例外类型,巧合的是,它似乎也是最模糊的。

我不断看到每当使用套接字,文件等写入时。然而,我从来没有真正对我开过火,所以我想知道应该解雇这个例外的是什么。文档在解释正在发生的事情方面不是很有帮助:throws IOException

指示发生了某种 I/O 异常。此类是由失败或中断的 I/O 操作产生的异常的常规类。

在哪些情况下会抛出 IOException,应该如何使用它?


答案 1

假设您是:

  1. 正在读取网络文件并断开连接。
  2. 读取不再可用的本地文件。
  3. 使用一些流来读取数据,而使用一些其他进程关闭了流。
  4. 尝试读/写文件,但没有权限。
  5. 尝试写入文件,但磁盘空间不再可用。

还有更多的例子,但根据我的经验,这些是最常见的。


答案 2

通常,I/O 表示输入或输出。每当输入或输出操作失败或解释时,这些方法都会引发 。请注意,这不会被抛出用于读取或写入内存,因为Java将自动处理它。IOException

以下是导致 .IOException

  • 从封闭的输入流读取
  • 尝试在没有网络连接的情况下访问互联网上的文件