Der Zweck der Einrichtung eines Puffers besteht darin, die Übertragungsleistung zu erhöhen und uns Daten schneller zu übertragen.
Der Puffer ist eigentlich sehr einfach. Es fasst ein Array intern zusammen und verwendet ein Array, um Daten zu speichern, um einige Methoden für den Zugriff auf das Array bereitzustellen.
Der Betrieb dieser Methoden besteht darin, Zeiger auf das Array (Winkelmarkierungen) zu zeigen.
Das Prinzip des Puffers: Holen Sie sich eine Stapel von Daten von der Quelle zum Puffer, nehmen Sie sie dann einzeln aus dem Puffer heraus und verwenden Sie -1 als Endmarke.
Im BufferedReader haben wir Methoden gelesen () und Readline () zum Lesen von Daten.
Read () hat Parameter char [], cbuf, int off, int len. Sein Rückgabewert beträgt -1
Mit der Readline () -Methode wird die Innenseite der Zeile für Zeile wie ein String -Container -StringBuffder übernehmen, dessen Rückgabewert null ist.
Definieren Sie zunächst eine Klasse, um zwei Methoden zum Lesen von Daten in der Klasse myreader () und myReadline () zu definieren.
öffentliche Klasse myBuffeedReader {private fileReader fr; private char [] buff = new char [1024]; private int zz = 0; private int count = 0; MyBuffeedReader (fileReader fr) {this.fr = fr; } public int myRead () löst ioException {if (count == 0) {count = fr.read (Buff) aus; Zz = 0; } if (count <0) return -1; char ch = buff [zz ++]; zählen--; Rückkehr CH; } public String myReadline () löst IOException aus {StringBuilder stb = new StringBuilder (); int ch = 0; while ((ch = myRead ())! =-1) {if (ch == '/r') Fortsetzung; if (ch == '/n') return stb.toString (); stb.Append ((char) ch); } if (stb.length ()! = 0) return stb.toString (); null zurückkehren; } public void myclose () löscht ioException {fr.close (); }}Darin definiere ich einen Zeiger ZZ und eine Pufferzählerzahl, um die Änderungen in den Lesedaten im Puffer aufzuzeichnen
Wenn count == 0, lesen Sie Daten in den Puffer ZZ 0. Lesen Sie aus der ersten Nummer
Wenn die Daten weniger als 0 sind, gibt sie nach dem Lesen -1 zurück.
Erstellen Sie einen String -Container -StringBuilder in MyReadline (), um Daten zu speichern. Wenn STB ==/N eine Zeile gelesen wird und ihr Rückgabewert null ist;
Das obige Beispiel eines benutzerdefinierten BufferedReaders ist der gesamte Inhalt, den ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.