类I / O的例外

问题描述 投票:1回答:2

我正在攻读OCP考试这些课程的I / O:

  • OutputStream子类: FileOutputStream中 的BufferedOutputStream DataOutputStream类 PrintStream(我看到它的方法write()不抛出异常)
  • 编写器子类: 的FileWriter 但是BufferedWriter PrintWriter(我看到它的方法write()不抛出异常)
  • 读者子类: 的FileReader 的BufferedReader
  • InputStream子类: 的BufferedInputStream FilterInputStream中 ObjectInputStream的

我的问题:对于读取和写入的主要方法(具有不同的签名),这些类中的每一个何时抛出IOException?在javadoc中只有一个短语:

IOException - 如果发生I / O错误

没有对案件的解释。

我知道这个(我不知道这些是否正确):

  • 如果文件不存在,FileOutputStream将抛出java.io.FileNotFoundException。实际上,这个类不会创建文件;
  • 如果文件不存在,FileWriter会抛出java.io.FileNotFoundException。这个类实际上不会创建文件;
  • 如果文件不存在,BufferedReader将抛出java.nio.file.NoSuchFileException(IOException的子类);
  • 如果文件不存在,FileInputStream将抛出java.io.FileNotFoundException。

非常感谢!

一个。

java exception io ioexception
2个回答
1
投票

任何这些类在执行期间遇到问题时都会抛出I / O异常。在以下情况下,文件输出流可能会抛出异常:

  • 文件不存在
  • 文件是只读的
  • 操作系统拒绝访问该文件
  • 你写的驱动器没有足够的空间

在以下情况下,输入流通常会抛出异常:

  • 流未正确初始化
  • 输入类型未匹配
  • 如果正在读取的文件在读取时更改
  • 如果该文件不存在。

1
投票

如果你谷歌该类的API文档,通常Javadocs将解释在什么情况下抛出什么异常,例如对于FileWriter

https://docs.oracle.com/javase/7/docs/api/java/io/FileWriter.html

© www.soinside.com 2019 - 2024. All rights reserved.