Существует CSV файл с количеством строк ~10000000. С ним нужно уметь делать много чего интересного, но это уже другая история. Для начала его нужно провалидировать. Первая строка (заголовок) файла выглядить примерно так:
блабла String; а-ля_дата Date;ещё_блабла Float; целое_число Integer; бла-бла-бла Integer
Заголовок может быть любым, правило одно - для каждой колонки он состоит из двух слов: первое - имя столбца, второе - тип. Типов всего четыре: Integer, Float, Date (mm.dd.yyyy) и String. Реализовал проверку на совпадение количества записей во всех строках, на некорректную сигнатуру заголовка столбца и т.д. Осталось самое интересное - валидация типа записи в каждой ячейке. Ах да, если данные хоть в одной ячейке невалидны - аварийно падаем, что несомненно упрощает задачу. Вопрос - как бы лучше реализовать валидацию каждой ячейки, ибо объемы данных не так уж малы. В среднем у меня на данный момент на проверку кучи условий на объемах в 10 столбцов и 10000000 строк уходит ~5 сек, что уже, имхо, чертовски много.
Итак, знаем в каком столбце какого типа должны храниться данные и знаем строку, которая хранится в данной конкретной ячейке при проходе по всему файлу. Что меня спасет? Попытка создания wrapper класса из строки, хранящейся в ячейке и завершение работы по исключению? Регекспы? В общем, посоветуйте.
Спасибо.