Моя проблема состоит в том, что у меня есть приложение, которое пишет много относительно (100-500kb) маленьких файлов CSV (десятки и сотни тысяч). Содержание тех файлов затем загружается в базе данных через sql вызов загрузчика (его дб оракула), и это - то, с чем я должен жить.
Так, я должен удалить те маленькие файлы время ко времени, чтобы препятствовать тому, чтобы они съели все пространство. Я хотел бы присоединить это к действию, которое пишет те файлы и загружает их в дб, поскольку последнее завершает шаг.
Мой Вопрос - как в Java можно удалить набор маленьких файлов с меньше служебным на производительности?
Заранее спасибо! Michael
Ну, file.delete ()
должно хватить (это внутренне реализовано как собственный метод)
Я бы посоветовал проверить библиотеку Apache Commons IO .У них есть несколько довольно полезных методов удаления файлов в классе FileUtils.
Вы можете обнаружить, что это на порядок быстрее, если вы заплатите и попросите систему удалить их. Вы должны быть в состоянии достичь точки остановки (когда файлы не обрабатываются), затем выйти и удалить "*" или . или что там у вас в ОС.
(Заметьте, это делает вашу программу ОЧЕНЬ зависимой от ОС!)
Убедитесь, что в Windows и Mac вы обходите функцию корзины!
Самое приятное в del . или rm * в том, что они ДОЛЖНЫ выполнять пакетную операцию, а не многократно открывать, изменять и закрывать каталог.
Вы также можете записывать имена файлов по схеме a001, a002, a003, ... и когда вы достигнете a999, вы перейдете в b001 и удалите a*.