Удалить файл в Java можно несколькими способами: с помощью стандартного API и с помощью сторонних библиотек. В этой статье мы рассмотрим три способа:
- с помощью Files.delete
- с помощью Files.deleteIfExists
- с помощью FileUtils.deleteQuietly
Примечание 1: если вместо файла передан путь к директории, указанная директория будет удалена, если она пуста.
Примечание 2: если вместо файла указана символическая ссылка, она будет удалена, но файл не будет затронут.
Удаление файла с помощью Files.delete
Первый способ удалить файл – это воспользоваться стандартным методом Files.delete:
try { Files.delete(Paths.get("/home/alex/test")); } catch (IOException x) { System.err.println(x); }
Стоит заметить, что метод Files.delete может генерировать исключения, поэтому его придётся завернуть в блок try-catch. Например, если указанный файл не найден, будет сгенерировано исключение NoSuchFileException .
Удаление файла с помощью Files.deleteIfExists
Следующий способ – использовать метод Files.deleteIfExists, который возвращает true или false в зависимости от того, получилось ли удалить указанный файл:
try { Files.deleteIfExists(Paths.get("/home/alex/test")); } catch (IOException e) { System.err.println(e); }
Также метод Files.deleteIfExists отличается от Files.delete тем, что не выбрасывает исключение NoSuchFileException в случае, если файл не найден.
Удаление файла с помощью FileUtils.deleteQuietly
Следующий способ – использовать библиотеку Commons IO. Для этого нужно подключить библиотеку в проект:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.7</version> </dependency>
И воспользоваться методом FileUtils.deleteQuietly:
FileUtils.deleteQuietly(new File("/home/alex/test"));
Этот метод не генерирует исключений в случае, если файл не найден или произошла другая ошибка при попытке удалить указанный файл.
Исходный код
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.*; public class RemoveFile { public static void main(String[] args) { try { Files.delete(Paths.get("/home/alex/test")); } catch (IOException x) { System.err.println(x); } try { Files.deleteIfExists(Paths.get("/home/alex/test")); } catch (IOException e) { System.err.println(e); } FileUtils.deleteQuietly(new File("/home/alex/test")); } }
Заключение
В данной статье мы рассмотрели различные способы для того, чтобы удалить файл. Вы можете воспользоваться любым исходя из ваших требований.