Документы Java 7 для FileWriter и FileOutputStream показывают, что конструктор FileWriter выдает IOException, а конструктор FileOutputStream выдает FileNotFoundException.
Причина обоих исключений одна и та же. В нем говорится: «если файл существует, но является каталогом, а не обычным файлом, не существует, но не может быть создан или не может быть открыт по любой другой причине»
Если это так, то почему создатели Java выбирают специализированное исключение для FileOutputStream и общее исключение для FileWriter ??