Исключение для классов ввода / вывода - PullRequest
1 голос
/ 24 марта 2019

Я готовлюсь к экзамену OCP по этим классам ввода-вывода:

  • Подклассы OutputStream:

    • FileOutputStream
    • BufferedOutputStream
    • DataOutputStream
    • PrintStream (я вижу, его методы write () не генерируют исключения)
  • Подклассы Writer:

    • FileWriter
    • BufferedWriter
    • PrintWriter (я вижу, его методы write () не генерируют исключения)
  • Подклассы Reader:

    • FileReader
    • BufferedReader
  • Подклассы InputStream:

    • BufferedInputStream
    • FilterInputStream
    • ObjectInputStream

Мой вопрос: для основных методов чтения и записи (с разными сигнатурами), когда каждый из этих классов генерирует IOException?В javadoc есть только фраза:

IOException - если возникает ошибка ввода-вывода

без объяснения случаев.

Iзнаю это (я не знаю, если это правильно):

  • FileOutputStream генерирует исключение java.io.FileNotFoundException, если файл не существует.Фактически, этот класс не создает файл;

  • FileWriter генерирует исключение java.io.FileNotFoundException, если файл не существует.Этот класс фактически не создает файл;

  • BufferedReader создает java.nio.file.NoSuchFileException (подкласс IOException), если файл не существует;

  • FileInputStream создает исключение java.io.FileNotFoundException, если файл не существует.

Большое спасибо!

A.

Ответы [ 2 ]

1 голос
/ 24 марта 2019

Любой из этих классов генерирует исключение ввода-вывода, когда они сталкиваются с проблемой во время выполнения. Потоки вывода файла могут выдать исключение, если:

  • Файл не существует
  • Файл только для чтения
  • ОС отказывает в доступе к файлу
  • На диске, который вы пишете, недостаточно места

Входные потоки обычно выдают исключение, если:

  • Поток не инициализирован должным образом
  • Тип ввода не соответствует
  • Если файл, из которого выполняется чтение, изменяется при чтении
  • Если файл не существует.
1 голос
/ 24 марта 2019

Если вы гуглите документацию API для класса, обычно Javadocs объяснит, какие исключения возникают при каких обстоятельствах, например, за FileWriter

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...