Раньше мне приходилось писать много утилит для работы с файлами. В основном - поиск и замена определенных строк в определенных файлах. Я даже свою собственную библиотечку написал и юзал во всех таких утилитных проектах.
Все удивлялся, почему в jdk не входит удобный и простой метод для перебора файлов и работы со строками. И вот как-то читая juick наткнулся на запись ~ "я открыл для себя commons.io, рулез!". И тоже для себя ее открыл :-D
Оказалось, что эта библиотека сократила код всех моих утилит раза в 3! Использовать и изучить ее очень просто! Хоть я и не пользуюсь всеми фишками, хочу о двух из них, для примера, рассказать.
Пример:
Задача #1:
Нам требуется найти все файлы, содержащие строку "hello world" и сохранить список этих файлов.
Решение:
Надо просто написать класс, назовем его "HelloWorldWalker" и унаследовать его от абстрактного класса DirectoryWalker. Переопределяем в нем метод handleFile, в котором "принимаем" только файлы, содержащие искомую строку. Все очень просто.
Использовать его еще проще!
List
Задача #2:
Надо считать все строки из файла
Решение:
List
Проще некуда!
P.S. Похоже commons.io не поддерживает дженерики из java 5, очень жаль
P.P.S. пост just for fun