Puffer in der Programmierung

Ohne BufferedReader würde das Objekt inputStream Zeichen pro Zeichen lesen, was sehr lange dauern würde.
Ja. Im Extremfall pro char ein Festplattenzugriff.
Wie schon oben irgendwo gesagt wurde sind Festplattenzugriffe effizienter,
wenn man viel auf einmal liest, aber dafür nicht so oft zugreift.

Mit BufferedReader liest das Objekt inputStream alle Zeichen bis nichts mehr zu lesen ist(inputStream tut erstmal alle Zeichen in einen Topf bzw. in ein Buffer).
Nicht ganz.
Der Inputstream tut überhaupt nichts anders,
nur wird nicht direkt von Platte etc. gelesen,
sondern er bekommt die Daten aus der Bufferedklasse gegeben.
Wie die ihre Daten bekommt ist ihr selbst überlassen.

Tatsächlich werden dann eben Portionen gelesen, die für die Geschwindigkeit besser sind,
und zwischengespeichert, damit der Inputstream nach und nach davon lesen kann.
Es muss aber nicht die komplette Datei auf einmal sein, die der BufferedReader im Speicher hat.
(es wäre sogar sehr schlecht, wenn immer die ganze Datei gelesen wird.
Dateien können auch 100GB und mehr haben)
 
Zurück