Я бы сохранял разом. 3-4 тысячи строк — это сколько, 150КБ? Пусть даже 300КБ, нет никаких проблем подержать такой объём в памяти, не отвлекаясь сброс в файл, а потом сохранить разом.
Процесс парсинга идёт, наверное, секунду от силы? Не заморачивайтесь, сохраняйте результаты по окончании.
PS, конечно, следует правильно расставить обработку эксепшнов, если они возможны.