Objekt integriertes Objekt

ObjectBufferedStream

Cache-Leseobjekt

Das BufferedStream-Objekt ist ein gepuffertes Stream-Objekt, das zum Lesen binärer Streams verwendet wird. Es kann den zugrunde liegenden Stream zwischenspeichern und Textlesefunktionen bereitstellen. Wenn Sie das BufferedStream-Objekt verwenden, müssen Sie nur das zu verarbeitende Stream-Objekt als Konstruktionsparameter übergeben. Erstellungsmethode:

1
var reader = new io.BufferedStream(stream);

BufferedStream erbt vonStreamObjekt, habenStreamAlle Methoden und Eigenschaften des Objekts. Unter anderem wird das Stream-Attribut zum Abfragen des Stream-Objekts beim Erstellen des Cache-Objekts verwendet. Das BufferedStream-Objekt unterstützt außerdem das EOL-Attribut zum Abfragen und Festlegen der Zeilenendkennung (Standard: posix:\"\n\"; Windows:\"\r\n\") und das charset-Attribut zum Abfragen und Festlegen Der aktuelle Objektverarbeitungszeichensatz für Text, Standard ist utf-8.

Wenn das BufferedStream-Objekt Stream-Daten liest, verwendet es eine Blockmethode, um die Daten zuerst in den Puffer zu lesen und dann die Daten aus dem Puffer abzurufen. Dadurch kann die Anzahl der Netzwerkinteraktionen beim Lesen von Stream-Daten effektiv reduziert und die Leseeffizienz verbessert werden Effizienz.

Das BufferedStream-Objekt stellt auch die Schreibmethode zum Schreiben der angegebenen Daten in den Stream bereit. Wenn das zugrunde liegende Stream-Objekt beim Schreiben blockiert ist, warten Sie, bis es die Daten akzeptiert, bevor Sie mit dem nächsten Schritt fortfahren. Die Flush-Methode schreibt den Inhalt des Dateipuffers auf ein physisches Gerät. Die close-Methode schließt das aktuelle Stream-Objekt. Die spezifische Implementierung einiger Methoden kann in Unterklassen implementiert werden.

Wenn Sie das BufferedStream-Objekt verwenden, müssen Sie darauf achten, es nicht mit anderen zugrunde liegenden Stream-Objekten zu vermischen, die bereits verwendet werden, da es sonst zu wiederholten Lesevorgängen oder Lesefehlern kommen kann.

Hier ist ein Beispielcode, der ein BufferedStream-Objekt verwendet, um den Inhalt einer Datei zu lesen:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
var fs = require('fs'); var io = require('io'); var filename = "test.txt"; // open file var file = fs.openFile(filename); // create BufferedStream object var reader = new io.BufferedStream(file); // read file content var lines = reader.readLines(); for (var i = 0; i < lines.length; i++) console.log(lines[i]); // close file file.close();

Erbschaftsverhältnis

Konstrukteur

BufferedStream

BufferedStream-Konstruktor

1
new BufferedStream(Stream stm);

Aufrufparameter:

  • stm:Stream, das binäre zugrunde liegende Stream-Objekt von BufferedStream

Mitgliedereigenschaften

stream

Stream, Fragen Sie das Stream-Objekt beim Erstellen des Cache-Objekts ab

1
readonly Stream BufferedStream.stream;

charset

Zeichenfolge, Abfrage und Festlegung des Zeichensatzes des aktuellen Objekts bei der Textverarbeitung. Der Standardwert ist utf-8

1
String BufferedStream.charset;

EOL

Zeichenfolge, Abfrage und Festlegung der Zeilenendkennung. Standardmäßig posix:\"\n\"; windows:\"\r\n\"

1
String BufferedStream.EOL;

fd

Ganzzahl, AbfrageStreamDer entsprechende Dateideskriptorwert, implementiert durch Unterklassen

1
readonly Integer BufferedStream.fd;

Mitgliedsfunktion

readText

Text mit angegebenen Zeichen lesen

1
String BufferedStream.readText(Integer size) async;

Aufrufparameter:

  • size: Ganzzahl, gibt die Anzahl der zu lesenden Textzeichen an, je nachdem, ob es sich um UTF8 oder die angegebene Anzahl von Codierungsbytes handelt.

Rückgabeergebnisse:

  • String, gibt die gelesene Textzeichenfolge zurück. Wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist, wird null zurückgegeben.

readLine

Eine Textzeile lesen. Die Zeilenendekennung basiert auf der Einstellung des EOL-Attributs. Standardmäßig ist posix:\"\n\"; windows:\"\r\n\"

1
String BufferedStream.readLine(Integer maxlen = -1) async;

Aufrufparameter:

  • maxlen: Ganzzahl, gibt die maximale Zeichenfolge an, die dieses Mal gelesen wird, basierend auf der Anzahl der UTF8-Codierungsbytes. Standardmäßig gibt es keine Begrenzung für die Anzahl der Zeichen.

Rückgabeergebnisse:

  • String, gibt die gelesene Textzeichenfolge zurück. Wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist, wird null zurückgegeben.

readLines

Liest eine Gruppe von Textzeilen im Array-Modus. Die Zeilenendekennung basiert auf der Einstellung des EOL-Attributs. Standardmäßig ist posix:\"\n\"; windows:\"\r\n\"

1
Array BufferedStream.readLines(Integer maxlines = -1);

Aufrufparameter:

  • maxlines: Ganzzahl, gibt die maximale Anzahl der Zeilen an, die dieses Mal gelesen werden sollen. Standardmäßig werden alle Textzeilen gelesen.

Rückgabeergebnisse:

  • Array, gibt ein Array gelesener Textzeilen zurück. Wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist, ist das Array leer.

readUntil

Liest eine Textzeichenfolge, die mit den angegebenen Bytes endet

1 2
String BufferedStream.readUntil(String mk, Integer maxlen = -1) async;

Aufrufparameter:

  • mk: String, der String, der das Ende angibt
  • maxlen: Ganzzahl, gibt die maximale Zeichenfolge an, die dieses Mal gelesen wird, basierend auf der Anzahl der UTF8-Codierungsbytes. Standardmäßig gibt es keine Begrenzung für die Anzahl der Zeichen.

Rückgabeergebnisse:

  • String, gibt die gelesene Textzeichenfolge zurück. Wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist, wird null zurückgegeben.

writeText

Schreiben Sie eine Zeichenfolge

1
BufferedStream.writeText(String txt) async;

Aufrufparameter:

  • txt: String, gibt den zu schreibenden String an

writeLine

Schreiben Sie eine Zeichenfolge und ein Zeilenumbruchzeichen

1
BufferedStream.writeLine(String txt) async;

Aufrufparameter:

  • txt: String, gibt den zu schreibenden String an

read

Liest Daten der angegebenen Größe aus dem Stream

1
Buffer BufferedStream.read(Integer bytes = -1) async;

Aufrufparameter:

  • bytes: Ganzzahl, gibt die Menge der zu lesenden Daten an. Standardmäßig werden Datenblöcke zufälliger Größe gelesen. Die Größe der gelesenen Daten hängt vom Gerät ab.

Rückgabeergebnisse:

  • Buffer, gibt die aus dem Stream gelesenen Daten zurück. Wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist, wird null zurückgegeben.

write

Schreiben Sie die angegebenen Daten in den Stream

1
BufferedStream.write(Buffer data) async;

Aufrufparameter:

  • data:Buffer, angesichts der zu schreibenden Daten

flush

Schreiben Sie den Inhalt des Dateipuffers auf das physische Gerät

1
BufferedStream.flush() async;

close

Schließen Sie das aktuelle Stream-Objekt

1
BufferedStream.close() async;

copyTo

Streamdaten in den Zielstream kopieren

1 2
Long BufferedStream.copyTo(Stream stm, Long bytes = -1) async;

Aufrufparameter:

  • stm:Stream, Ziel-Stream-Objekt
  • bytes: Lang, Anzahl der kopierten Bytes

Rückgabeergebnisse:

  • Long, gibt die Anzahl der kopierten Bytes zurück

toString

Gibt die Zeichenfolgendarstellung des Objekts zurück. Im Allgemeinen wird „[Native Object]“ zurückgegeben. Das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden.

1
String BufferedStream.toString();

Rückgabeergebnisse:

  • String, gibt die Zeichenfolgendarstellung des Objekts zurück

toJSON

Gibt eine Darstellung des Objekts im JSON-Format zurück und gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die vom Objekt definiert werden.

1
Value BufferedStream.toJSON(String key = "");

Aufrufparameter:

  • key: Zeichenfolge, nicht verwendet

Rückgabeergebnisse:

  • Value, gibt einen Wert zurück, der JSON serialisierbar enthält