Grade nochmal nachgesehn:
SaveToFile sollte funktionieren.
In den Ringpuffer wird alles reingeschrieben und wenn X Bytes ausgelesen wurde, dann liegt der Anfang dieses Puffers nun auf Position X+1 und ab dieser Stelle würd auch SaveToFile speichern.
Statt Read und Write solltest du immer ReadBuffer und WriteBuffer verwenden, außer du wertest das Result aus.
Wenn per Write/WriteBuffer A bis G rein geschrieben und über Read/ReadBuffer/Seek das A ausgelesen wurde, dann sind noch B bis G drin.
Dieser RingPuffer muß auch manuell geleert werden, denn wenn er voll ist, passt nix mehr rein, da nichts automatisch gelöscht wird.
Und bezüglich Vererbung sollte ich mich für diese Klasse steinigen lassen.