Ich würde Zeile für Zeile einlesen und diese in einer Map speichern.
Beim Speichern in die Map kann man gleich prüfen, ob der Eintrag schon existiert, falls ja, dann nicht mehr neu speichern.
nachdem alle zeile einlesen wurden, würde ich einfach die Map durchlaufen und alle Inhalte in einer neuen Datei ausgeben.