Jest coś takiego:
https://docs.oracle.com/javase/8/docs/api/java/io/LineNumberReader.html
Może jakbyś pokazał jak ten plik wygląda tzn. po prostu wkleił go tutaj (lub jego część), to może ktoś by coś doradził.
Przeglądnij jeszcze jakieś biblioteki np. guave, albo apache-commons.
Tak jeszcze analizując twoją wypowiedź:
Bo oczywiscie przy readLine() lecimy linia po lini ale co gdy "przejedziemy" caly plik i chcemy wyszukac teraz konkretna osobe.
Nie wiem czy dobrze zrozumiałem, ale tutaj chyba założyłeś, że plik będzie raz otwierany przez cały cykl życia programu. Wydaje mi się, że to nie jest dobre. Jeśli plik nie jest w danej chwili potrzebny należy go zamykać. Za każdym razem kiedy będziesz odwoływał się do pliku będzie trzeba otwierać go na nowo więc zawsze będziesz zaczynał od początku pliku.