Я использую FileOutputStream fos
для создания/добавления и записи в отладочный файл в отдельном потоке:FileOutputStream write не вызывает исключение, когда файл был удален?
fos = new FileOutputStream(outputFile, true);
if (!outputFile.exists()) {
outputFile.createNewFile();
}
fos.write(string.getBytes());
Этот код продолжает неоспоримым вызывается в цикле, пока пользователь может очистить = удалить файл в любое время из другого потока, чтобы начать запись заново отладочной информации.
Теперь я действительно удивлен, что, когда файл удален, этот код проходит без каких-либо исключений, НО ничего не происходит. т.е. файл не воссоздается, и ничего не написано. Все «записи» просто потеряны.
Должен ли я постоянно проверять вручную, был ли файл удален в то же время сам, прежде чем звонить fos.write
каждый раз?
Если исключение будет работать, как ожидалось, то есть при записи в удаленный файл было бы проще и чище.
Благодарим вас за четкий ответ - однако я не уверен, что действительно согласен «И это факт, это приводит к более простому и более чистому поведению, чем к взрыву при удалении файла». Наличие чистого исключения для обработки этого случая на самом деле не «взрывается». Тем не менее - спасибо за это, поэтому я должен проверить, существует ли файл перед каждой записью в файл. Я правильно понял тебя? – user387184
@ user387184 Попытка разработки Windows иногда ... и вам понравится * IX семантика файловой системы ;-) Так или иначе, не проверяйте перед записью. Только на открытом (который «встроен» в зависимости от режима). Если кто-то отменит файл («удаляет его»), мы надеемся, что у них есть причина ... лучший способ «очистить» файл - это, возможно, усечение. –
В этом случае я должен проверить перед каждой записью, если файл все еще существует, поскольку это цикл отладки с множеством выходов, а пользователь мой старт заново на любом этапе, забывая обо всех предыдущих отладочных линиях вывода - во всяком случае, это очень быстро и нет проблемы вообще. Еще раз спасибо за то, что этот кристал ясен! Вот почему я так люблю! – user387184