Вы можете использовать свою исходную папку, поэтому всякий раз, когда вы создаете, эти файлы автоматически копируются в каталог классов.
Вместо использования файла свойств используйте файл XML.
Если данные слишком малы, вы даже можете использовать web.xml для доступа к свойствам.
Обратите внимание, что для любого из этих подходов потребуется перезапуск сервера приложений, чтобы изменения отражались.
Вы можете проверить права доступа к файлу, убедиться, что каталог существует, и сделать много проверок или найти библиотеку, которая выполняет всю эту проверку за вас НО (!) не лучший способ проверка попробовать? Если вы проверяете права доступа и изменения файловой системы ... вам придется изменить свой код. Но попытка написать файл ВСЕГДА скажет вам, можете ли вы написать файл.
Ваше решение не должно быть самым элегантным. Это не дешевый жесткий кодированный патч или что-то ужасное. Это просто нормальный код. И это всегда будет работать. Но если вам не нравится видеть эту проверку в коде, просто отделите ее, поместив в класс, единственная цель которой - проверить возможность написания. На самом деле, вы должны поместить его в полезный класс там, где вам нравится элегантность или нет.
Другим решением было бы поместить весь код записи на жесткий диск. И если вы не можете написать, вся часть будет пропущена, и вы дадите отзыв пользователю с сообщением в части catch.
Вы можете использовать FilePermission , чтобы получить подробную информацию. Я нахожу один способ, где вам нужно реализовать SecurityManager код здесь и здесь
он не работает, даже если вы вызываете canWrite
на конечном пути ?
File sample = new File(fileBrowse.getParent(),"empty.txt");
if (sample.canWrite()) {
doSomethingUseful(sample);
} else {
notifyUser();
}