Object BufferedStream
Cache gelezen objecten
Een BufferedStream-object is een gebufferd stream-object voor het lezen van binaire streams. Het kan zijn onderliggende stream cachen en tekstleesmogelijkheden bieden. Wanneer u het BufferedStream-object gebruikt, hoeft u alleen het te verwerken stream-object als constructieparameter door te geven. Creatie methode:
1var reader = new io.BufferedStream(stream);
BufferedStream erft vanStreamvoorwerp, heeftStreamAlle methoden en eigenschappen van het object. Onder hen wordt het stream-attribuut gebruikt om het stream-object op te vragen bij het maken van het cache-object. Het BufferedStream-object ondersteunt ook het EOL-kenmerk voor het opvragen en instellen van de end-of-line identifier (standaard posix:\"\n\"; windows:\"\r\n\") en het tekensetkenmerk voor het opvragen en instellen van de huidige objectverwerking Tekenset voor tekst, standaard is utf-8.
Wanneer het BufferedStream-object streamgegevens leest, past het een blokmethode toe, leest eerst de gegevens in de buffer en verkrijgt vervolgens de gegevens uit de buffer, wat het aantal netwerkinteracties bij het lezen van streamgegevens effectief kan verminderen en de leesefficiëntie kan verbeteren Neem efficiëntie.
Het BufferedStream-object biedt ook een schrijfmethode om de gegeven gegevens naar de stream te schrijven, en wanneer het onderliggende stream-object is geblokkeerd voor schrijven, wacht u tot het de gegevens accepteert voordat u doorgaat naar de volgende stap. De Flush-methode schrijft de inhoud van de bestandsbuffer naar het fysieke apparaat. De close-methode sluit het huidige stream-object. De specifieke implementatie van sommige methoden kan in subklassen worden geïmplementeerd.
Wanneer u het BufferedStream-object gebruikt, moet u ervoor zorgen dat u het niet vermengt met andere onderliggende stream-objecten die al in gebruik zijn, anders kan dit leiden tot herhaaldelijk lezen van gegevens of leesfouten.
Het volgende is een voorbeeldcode voor het lezen van de inhoud van een bestand met behulp van een BufferedStream-object:
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();
erfenis relatie
Constructeur
BufferedStream
BufferedStream-constructor
1new BufferedStream(Stream stm);
Oproepparameters:
- stm:Stream, het binaire onderliggende streamobject van BufferedStream
lid attribuut
stream
Stream, voer een query uit op het stream-object bij het maken van het cache-object
1readonly Stream BufferedStream.stream;
charset
String, vraag en stel de tekenset van het huidige object in bij het verwerken van tekst, de standaard is utf-8
1String BufferedStream.charset;
EOL
String, vraag en stel het einde van de regel-ID standaard in, posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.EOL;
fd
Integer, vraagStreamDe overeenkomstige bestandsdescriptorwaarde, geïmplementeerd door subklassen
1readonly Integer BufferedStream.fd;
lid functie
readText
lees tekst met gespecificeerde karakters
1String BufferedStream.readText(Integer size) async;
Oproepparameters:
- size: geheel getal, specificeer het aantal te lezen teksttekens, afhankelijk van utf8 of het opgegeven aantal gecodeerde bytes
retour resultaat:
- String, retourneert de gelezen tekenreeks, of null als er geen gegevens zijn om te lezen of als de verbinding is verbroken
readLine
Lees een regel tekst, het einde van de regel is gebaseerd op de instelling van het EOL-attribuut, standaard posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.readLine(Integer maxlen = -1) async;
Oproepparameters:
- maxlen: geheel getal, specificeert de maximale tekenreeks die deze keer moet worden gelezen, afhankelijk van het aantal bytes dat is gecodeerd in utf8, en het aantal tekens is niet standaard beperkt
retour resultaat:
- String, retourneert de gelezen tekenreeks, of null als er geen gegevens zijn om te lezen of als de verbinding is verbroken
readLines
Lees een groep tekstregels in een array en de identificatie van het einde van de regel is gebaseerd op de instelling van het EOL-attribuut. Standaard is posix:\"\n\"; windows:\"\r\n\"
1Array BufferedStream.readLines(Integer maxlines = -1);
Oproepparameters:
- maxlines: Integer, specificeert het maximum aantal regels om deze keer te lezen, en leest standaard alle tekstregels
retour resultaat:
- Array, retourneert een reeks gelezen tekstregels, als er geen gegevens zijn om te lezen of de verbinding wordt onderbroken, een lege reeks
readUntil
Lees een tekenreeks die eindigt met de opgegeven byte
1
2String BufferedStream.readUntil(String mk,
Integer maxlen = -1) async;
Oproepparameters:
- mk: String, specificeer het einde van de string
- maxlen: geheel getal, specificeert de maximale tekenreeks die deze keer moet worden gelezen, afhankelijk van het aantal bytes dat is gecodeerd in utf8, en het aantal tekens is niet standaard beperkt
retour resultaat:
- String, retourneert de gelezen tekenreeks, of null als er geen gegevens zijn om te lezen of als de verbinding is verbroken
writeText
schrijf een string
1BufferedStream.writeText(String txt) async;
Oproepparameters:
- txt: String, specificeert de string die moet worden geschreven
writeLine
Schrijf een string en schrijf een nieuwe regel
1BufferedStream.writeLine(String txt) async;
Oproepparameters:
- txt: String, specificeert de string die moet worden geschreven
read
Lees gegevens van de opgegeven grootte uit de stream
1Buffer BufferedStream.read(Integer bytes = -1) async;
Oproepparameters:
- bytes: geheel getal, geef de hoeveelheid te lezen gegevens op, de standaard is om gegevensblokken van willekeurige grootte te lezen, de grootte van de gelezen gegevens is afhankelijk van het apparaat
retour resultaat:
- Buffer, retourneert de gegevens die uit de stream zijn gelezen, of null als er geen gegevens zijn om te lezen of als de verbinding is verbroken
write
schrijft de gegeven data naar de stream
1BufferedStream.write(Buffer data) async;
Oproepparameters:
- data:Buffer, gezien de gegevens om te schrijven
flush
Schrijf de inhoud van de bestandsbuffer naar het fysieke apparaat
1BufferedStream.flush() async;
close
sluit het huidige stream-object
1BufferedStream.close() async;
copyTo
Kopieer streamgegevens naar doelstream
1
2Long BufferedStream.copyTo(Stream stm,
Long bytes = -1) async;
Oproepparameters:
- stm:Stream, het doelstroomobject
- bytes: Lang, het aantal gekopieerde bytes
retour resultaat:
- Long, geeft het aantal gekopieerde bytes terug
toString
Retourneert de tekenreeksrepresentatie van het object, retourneert over het algemeen "[Native Object]", het object kan opnieuw worden geïmplementeerd volgens zijn eigen kenmerken
1String BufferedStream.toString();
retour resultaat:
- String, retourneert een tekenreeksrepresentatie van het object
toJSON
Retourneert de weergave in JSON-indeling van het object, retourneert over het algemeen een verzameling leesbare eigenschappen die door het object zijn gedefinieerd
1Value BufferedStream.toJSON(String key = "");
Oproepparameters:
- key: String, niet gebruikt
retour resultaat:
- Value, die een JSON-serialiseerbare waarde retourneert