Hallo Konux,
eine Klasse "Datei" soll sich nicht ums CSV Lesen kümmern müssen ->
Single-Responsibility-Prinzip -> daher einen CsvReader dafür verwenden
Die Klasse "Datei" sollte nur das darstellen was es ist. Eine Datei ;-)
Also mit den Attributen (Properties / Eigenschaften) Name, Größe, etc.
Der CsvReader soll auch nicht den Bytestrom aus der Datei lesen und aufbereiten, sondern dies erledigt ein StreamReader, der vom CsvReader verwendet wird.
Das sind "allgemeine" OOP-Design-Regeln. Schau dir diese bei Bedarf / Gelegenheit an, dann wird sich das modellieren auch einfacher und natürlicher / logischer gestalen.
mfG Gü