Подтвердить что ты не робот

Java, IO - быстрый способ удаления файла

Моя проблема в том, что у меня есть приложение, в котором написано много относительно (100-500 кб) небольших CSV файлов (десятки и сотни тысяч). Содержимое этих файлов затем загружается в базу данных через вызов загрузчика sql (его oracle db), и с этим я должен жить.

Итак, мне нужно время от времени удалять эти маленькие файлы, чтобы они не могли съесть все пространство. Я хотел бы добавить это к активности, которая записывает эти файлы и загружает их в db в качестве последнего шага завершения.

Мой вопрос: как в java можно удалить кучу небольших файлов с меньшими затратами на производительность?

Спасибо заранее! Майкл

4b9b3361

Ответ 1

Ну, file.delete() должно быть достаточно (внутренне реализовано как собственный метод)

Ответ 2

Я предлагаю проверить библиотеку Apache Commons IO. У них есть довольно полезные методы для удаления файлов в классе FileUtils.

Ответ 3

Вы можете найти его на порядок быстрее, если вы выложите его и удалите систему. Вы должны были бы ударить точку остановки (где файлы не обрабатывались), затем выложить и удалить "*" или. или что бы то ни было для вашей ОС.

(Обратите внимание: это делает вашу программу ОЧЕНЬ зависимой!)

Убедитесь, что в Windows и Mac вы обходите функцию trashcan!

Хорошая вещь о дель. или rm * заключается в том, что они ДОЛЖНЫ выполнять пакетную операцию, а не повторно открывать, изменять и закрывать каталог.

Вы также можете записывать имена файлов с шаблоном типа a001, a002, a003,... и когда вы достигаете a999, вы переходите к b001 и удаляете *.

Ответ 4

FileUtils.cleanDirectory(new File("/usr/share/test")); //linux

FileUtils.cleanDirectory(new File("C:\\test")); //windows

Ответ 5

Можно использовать метод java.nio.file.Files ниже

delete(Path path)
deleteIfExists(Path path)

Для получения дополнительной информации обратитесь к этой статье