Ohne mich jetzt im Detail mit dem Post beschäftigt zu haben (ist mir zu wirr), warum liest du die gesamte Datei auf einmal in den Arbeitsspeicher und rennst über die Daten? Ein einfacher Stream wäre doch wesentlich effektiver, immerhin brauchst du nur wenige Daten aus der gesamten Datei.