Schon klar. Und was ist, wenn die Datei größer als 1GB ist? 20, 30 100? Ist doch blöd, so eine Lösung, die nur manchmal funktioniert. Machs doch richtig.
Wenn Du in einer Datei einen String der Länge L suchst, dann liest Du dir einen Puffer der Länge P ein, wobei P>L.
Du kannst direkt bis von Position 0..P-L suchen. Dann verschiebst Du die Bytes P-L...P-L-1 an die Stelle 0..L-1 und liest P-L-1 Bytes ab Position L ein. Das ganze wiederholst Du bis zum Ende. Fertig.
Das geht natürlich noch schneller und vielleicht sogar mit MMF, aber eine nette Übung ist es in jedem Fall.
Merke: Mach es richtig UND einfach, nicht einfach nur einfach.