Objekt BufferedStream
Gelesene Objekte zwischenspeichern
Ein BufferedStream-Objekt ist ein gepuffertes Stream-Objekt zum Lesen eines binären Streams. Es kann seinen zugrunde liegenden Stream zwischenspeichern und Textlesefunktionen bereitstellen. Bei Verwendung des BufferedStream-Objekts müssen Sie lediglich das zu verarbeitende Stream-Objekt als Konstruktionsparameter übergeben. Erstellungsmethode:
1var reader = new io.BufferedStream(stream);
BufferedStream erbt vonStreamObjekt, hatStreamAlle Methoden und Eigenschaften des Objekts. Unter ihnen wird das Stream-Attribut verwendet, um das Stream-Objekt abzufragen, wenn das Cache-Objekt erstellt wird. Das BufferedStream-Objekt unterstützt auch das EOL-Attribut zum Abfragen und Festlegen der Zeilenendekennung (standardmäßig posix:\"\n\"; windows:\"\r\n\") und das charset-Attribut zum Abfragen und Einstellung der aktuellen Objektverarbeitung Zeichensatz für Text, Standard ist utf-8.
Wenn das BufferedStream-Objekt Stream-Daten liest, verwendet es eine Blockmethode, liest die Daten zuerst in den Puffer und ruft dann die Daten aus dem Puffer ab, wodurch die Anzahl der Netzwerkinteraktionen beim Lesen von Stream-Daten effektiv reduziert und die Leseeffizienz verbessert werden kann Nehmen Sie Effizienz.
Das BufferedStream-Objekt stellt auch eine Schreibmethode bereit, um die angegebenen Daten in den Stream zu schreiben, und wenn das zugrunde liegende Stream-Objekt für das Schreiben gesperrt 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 das physische 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 mischen, die bereits verwendet werden, da es sonst zu wiederholtem Datenlesen oder Lesefehlern kommen kann.
Im Folgenden finden Sie einen Beispielcode zum Lesen des Inhalts einer Datei mithilfe eines BufferedStream-Objekts:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19var 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();
Erbverhältnis
Konstrukteur
BufferedStream
BufferedStream-Konstruktor
1new BufferedStream(Stream stm);
Aufrufparameter:
- stm:Stream, das zugrunde liegende binäre Stream-Objekt von BufferedStream
Mitgliedsattribut
stream
Stream, fragen Sie das Stream-Objekt beim Erstellen des Cache-Objekts ab
1readonly Stream BufferedStream.stream;
charset
Zeichenfolge, Abfrage und Festlegen des Zeichensatzes des aktuellen Objekts bei der Textverarbeitung, der Standardwert ist utf-8
1String BufferedStream.charset;
EOL
Zeichenfolge, Abfrage und Festlegen der End-of-Line-ID, standardmäßig posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.EOL;
fd
Ganzzahl, AbfrageStreamDer entsprechende Dateideskriptorwert, implementiert durch Unterklassen
1readonly Integer BufferedStream.fd;
Mitgliedsfunktion
readText
Text mit bestimmten Zeichen lesen
1String BufferedStream.readText(Integer size) async;
Aufrufparameter:
- size: Ganzzahl, geben Sie die Anzahl der zu lesenden Textzeichen an, abhängig von utf8 oder der angegebenen Anzahl codierter Bytes
Rückgabeergebnis:
- String, gibt die gelesene Textzeichenfolge oder null zurück, wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist
readLine
Lesen Sie eine Textzeile, das Ende der Zeile basiert auf der Einstellung des EOL-Attributs, standardmäßig posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.readLine(Integer maxlen = -1) async;
Aufrufparameter:
- maxlen: Integer, gibt die maximale Zeichenkette an, die dieses Mal gelesen werden soll, abhängig von der Anzahl der in utf8 codierten Bytes, und die Anzahl der Zeichen ist standardmäßig nicht begrenzt
Rückgabeergebnis:
- String, gibt die gelesene Textzeichenfolge oder null zurück, wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist
readLines
Liest eine Gruppe von Textzeilen in einem Array, und die Erkennung des Zeilenendes basiert auf der Einstellung des EOL-Attributs. Standardmäßig ist posix:\"\n\"; windows:\"\r\n\"
1Array BufferedStream.readLines(Integer maxlines = -1);
Aufrufparameter:
- maxlines: Integer, gibt die maximale Anzahl von Zeilen an, die dieses Mal gelesen werden sollen, und liest standardmäßig alle Textzeilen
Rückgabeergebnis:
- Array, gibt ein Array von gelesenen Textzeilen zurück, wenn keine Daten zu lesen sind oder die Verbindung unterbrochen ist, ein leeres Array
readUntil
Liest eine Textzeichenfolge, die mit dem angegebenen Byte endet
1
2String BufferedStream.readUntil(String mk,
Integer maxlen = -1) async;
Aufrufparameter:
- mk: String, geben Sie das Ende des Strings an
- maxlen: Integer, gibt die maximale Zeichenkette an, die dieses Mal gelesen werden soll, abhängig von der Anzahl der in utf8 codierten Bytes, und die Anzahl der Zeichen ist standardmäßig nicht begrenzt
Rückgabeergebnis:
- String, gibt die gelesene Textzeichenfolge oder null zurück, wenn keine Daten zum Lesen vorhanden sind oder die Verbindung unterbrochen ist
writeText
schreibe eine Zeichenfolge
1BufferedStream.writeText(String txt) async;
Aufrufparameter:
- txt: String, gibt den zu schreibenden String an
writeLine
Schreiben Sie eine Zeichenfolge und schreiben Sie einen Zeilenumbruch
1BufferedStream.writeLine(String txt) async;
Aufrufparameter:
- txt: String, gibt den zu schreibenden String an
read
Liest Daten der angegebenen Größe aus dem Stream
1Buffer BufferedStream.read(Integer bytes = -1) async;
Aufrufparameter:
- bytes: Ganzzahl, geben Sie die zu lesende Datenmenge an, standardmäßig werden Datenblöcke mit zufälliger Größe gelesen, die Größe der gelesenen Daten hängt vom Gerät ab
Rückgabeergebnis:
- Buffer, gibt die aus dem Stream gelesenen Daten zurück oder null, wenn keine Daten zu lesen sind oder die Verbindung unterbrochen ist
write
schreibt die angegebenen Daten in den Stream
1BufferedStream.write(Buffer data) async;
Aufrufparameter:
- data:Buffer, angesichts der zu schreibenden Daten
flush
Schreiben Sie den Inhalt des Dateipuffers auf das physische Gerät
1BufferedStream.flush() async;
close
schließt das aktuelle Stream-Objekt
1BufferedStream.close() async;
copyTo
Streamdaten in den Zielstream kopieren
1
2Long BufferedStream.copyTo(Stream stm,
Long bytes = -1) async;
Aufrufparameter:
- stm:Stream, das Ziel-Stream-Objekt
- bytes: Long, die Anzahl der kopierten Bytes
Rückgabeergebnis:
- Long, gibt die Anzahl der kopierten Bytes zurück
toString
Geben Sie die Zeichenfolgendarstellung des Objekts zurück, geben Sie im Allgemeinen "[Native Object]" zurück, das Objekt kann gemäß seinen eigenen Eigenschaften neu implementiert werden
1String BufferedStream.toString();
Rückgabeergebnis:
- String, gibt eine Zeichenfolgendarstellung des Objekts zurück
toJSON
Gibt die Darstellung des Objekts im JSON-Format zurück, gibt im Allgemeinen eine Sammlung lesbarer Eigenschaften zurück, die durch das Objekt definiert sind
1Value BufferedStream.toJSON(String key = "");
Aufrufparameter:
- key: Zeichenfolge, nicht verwendet
Rückgabeergebnis:
- Value, die einen JSON-serialisierbaren Wert zurückgibt