Знаете, что в Java можно безопасно создать файл и не перезаписать старый?
Обычно при записи легко случайно затереть существующий файл:
Files.writeString(path, json);
Если файл уже есть, его содержимое будет заменено.
Для логов, экспортов, отчётов, временных файлов и сохранения пользовательских данных это может быть опасно.
В таких случаях можно использовать
StandardOpenOption.CREATE_NEW:
Files.writeString(path, json, StandardOpenOption.CREATE_NEW);
Теперь Java создаст файл только если его ещё нет.
Если файл уже существует, будет выброшено исключение:
FileAlreadyExistsException
Это удобно, когда нужно защититься от случайной перезаписи важных данных.
Например, можно явно обработать ситуацию:
try {
Files.writeString(path, json, StandardOpenOption.CREATE_NEW);
} catch (FileAlreadyExistsException e) {
throw new IllegalStateException("Export already exists", e);
}
Так поведение становится предсказуемым: код либо создаёт новый файл, либо честно сообщает, что такой файл уже есть.
Полезные ресурсы по Java 👩💻| Наш канал в MAX 🟪
Обычно при записи легко случайно затереть существующий файл:
Files.writeString(path, json);
Если файл уже есть, его содержимое будет заменено.
Для логов, экспортов, отчётов, временных файлов и сохранения пользовательских данных это может быть опасно.
В таких случаях можно использовать
StandardOpenOption.CREATE_NEW:
Files.writeString(path, json, StandardOpenOption.CREATE_NEW);
Теперь Java создаст файл только если его ещё нет.
Если файл уже существует, будет выброшено исключение:
FileAlreadyExistsException
Это удобно, когда нужно защититься от случайной перезаписи важных данных.
Например, можно явно обработать ситуацию:
try {
Files.writeString(path, json, StandardOpenOption.CREATE_NEW);
} catch (FileAlreadyExistsException e) {
throw new IllegalStateException("Export already exists", e);
}
Так поведение становится предсказуемым: код либо создаёт новый файл, либо честно сообщает, что такой файл уже есть.
Полезные ресурсы по Java 👩💻| Наш канал в MAX 🟪