ObjetBufferedStream
Objet de lecture du cache
L'objet BufferedStream est un objet de flux mis en mémoire tampon utilisé pour la lecture de flux binaire. Il peut mettre en cache son flux sous-jacent et fournir des capacités de lecture de texte. Lorsque vous utilisez l'objet BufferedStream, il vous suffit de transmettre l'objet stream à traiter en tant que paramètre de construction. Méthode de création :
1var reader = new io.BufferedStream(stream);
BufferedStream hérite deStreamobjet, ayantStreamToutes les méthodes et propriétés de l'objet. Parmi eux, l'attribut stream est utilisé pour interroger l'objet stream lors de la création de l'objet cache. L'objet BufferedStream prend également en charge l'attribut EOL pour interroger et définir l'identifiant de fin de ligne (par défaut, posix :\"\n\" ; windows :\"\r\n\") et l'attribut charset pour interroger et définir le jeu de caractères de traitement d'objet actuel pour le texte, la valeur par défaut est utf-8.
Lorsque l'objet BufferedStream lit les données du flux, il adopte une méthode de bloc pour lire d'abord les données dans le tampon, puis obtenir les données du tampon. Cela peut réduire efficacement le nombre d'interactions réseau lors de la lecture des données du flux et améliorer l'efficacité de la lecture. efficacité.
L'objet BufferedStream fournit également la méthode d'écriture pour écrire les données données dans le flux, et lorsque l'objet de flux sous-jacent est bloqué en écriture, attendez qu'il accepte les données avant de passer à l'étape suivante. La méthode Flush écrit le contenu du tampon de fichier sur un périphérique physique. La méthode close ferme l'objet de flux actuel. L'implémentation spécifique de certaines méthodes peut être implémentée dans des sous-classes.
Lorsque vous utilisez l'objet BufferedStream, vous devez faire attention à ne pas le mélanger avec d'autres objets de flux sous-jacents déjà utilisés, sinon cela pourrait provoquer une lecture répétée des données ou des erreurs de lecture.
Voici un exemple de code qui utilise un objet BufferedStream pour lire le contenu d'un fichier :
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();
relation d'héritage
Constructeur
BufferedStream
Constructeur BufferedStream
1new BufferedStream(Stream stm);
Paramètres d'appel :
- stm:Stream, l'objet de flux binaire sous-jacent de BufferedStream
propriétés des membres
stream
Stream, Interroge l'objet flux lors de la création de l'objet cache
1readonly Stream BufferedStream.stream;
charset
Chaîne, interrogez et définissez le jeu de caractères de l'objet actuel lors du traitement du texte, la valeur par défaut est utf-8
1String BufferedStream.charset;
EOL
Chaîne, interrogez et définissez l'identifiant de fin de ligne. Par défaut, posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.EOL;
fd
Entier, requêteStreamLa valeur du descripteur de fichier correspondant, implémentée par les sous-classes
1readonly Integer BufferedStream.fd;
fonction membre
readText
Lire du texte avec les caractères spécifiés
1String BufferedStream.readText(Integer size) async;
Paramètres d'appel :
- size: Entier, spécifie le nombre de caractères de texte à lire, selon la valeur UTF8 ou le nombre spécifié d'octets de codage.
Résultats de retour :
- String, renvoie la chaîne de texte lue. S'il n'y a aucune donnée à lire ou si la connexion est interrompue, null est renvoyé.
readLine
Lire une ligne de texte. L'identifiant de fin de ligne est basé sur le paramètre de l'attribut EOL. Par défaut, posix:\"\n\"; windows:\"\r\n\"
1String BufferedStream.readLine(Integer maxlen = -1) async;
Paramètres d'appel :
- maxlen: Entier, spécifie la chaîne maximale lue cette fois, en fonction du nombre d'octets de codage utf8. Il n'y a pas de limite sur le nombre de caractères par défaut.
Résultats de retour :
- String, renvoie la chaîne de texte lue. S'il n'y a aucune donnée à lire ou si la connexion est interrompue, null est renvoyé.
readLines
Lit un groupe de lignes de texte en mode tableau. L'identifiant de fin de ligne est basé sur le paramètre de l'attribut EOL. Par défaut, posix:\"\n\"; windows:\"\r\n\"
1Array BufferedStream.readLines(Integer maxlines = -1);
Paramètres d'appel :
- maxlines: Entier, spécifie le nombre maximum de lignes à lire cette fois. Par défaut, toutes les lignes de texte sont lues.
Résultats de retour :
- Array, renvoie un tableau de lignes de texte lues. S'il n'y a aucune donnée à lire ou si la connexion est interrompue, le tableau sera vide.
readUntil
Lire une chaîne de texte se terminant par les octets spécifiés
1
2String BufferedStream.readUntil(String mk,
Integer maxlen = -1) async;
Paramètres d'appel :
- mk: String, la chaîne spécifiant la fin
- maxlen: Entier, spécifie la chaîne maximale lue cette fois, en fonction du nombre d'octets de codage utf8. Il n'y a pas de limite sur le nombre de caractères par défaut.
Résultats de retour :
- String, renvoie la chaîne de texte lue. S'il n'y a aucune donnée à lire ou si la connexion est interrompue, null est renvoyé.
writeText
Écrire une chaîne
1BufferedStream.writeText(String txt) async;
Paramètres d'appel :
- txt: String, spécifie la chaîne à écrire
writeLine
Écrivez une chaîne et écrivez un caractère de nouvelle ligne
1BufferedStream.writeLine(String txt) async;
Paramètres d'appel :
- txt: String, spécifie la chaîne à écrire
read
Lire les données de taille spécifiée à partir du flux
1Buffer BufferedStream.read(Integer bytes = -1) async;
Paramètres d'appel :
- bytes : Nombre entier, spécifie la quantité de données à lire. La valeur par défaut est de lire des blocs de données de taille aléatoire. La taille des données lues dépend de l'appareil.
Résultats de retour :
- Buffer, renvoie les données lues à partir du flux. S'il n'y a aucune donnée à lire ou si la connexion est interrompue, null est renvoyé.
write
Écrivez les données données dans le flux
1BufferedStream.write(Buffer data) async;
Paramètres d'appel :
- data:Buffer, étant donné les données à écrire
flush
Écrire le contenu du tampon de fichier sur un périphérique physique
1BufferedStream.flush() async;
close
Fermer l'objet de flux actuel
1BufferedStream.close() async;
copyTo
Copier les données du flux vers le flux cible
1
2Long BufferedStream.copyTo(Stream stm,
Long bytes = -1) async;
Paramètres d'appel :
- stm:Stream, objet de flux cible
- bytes: Long, nombre d'octets copiés
Résultats de retour :
- Long, renvoie le nombre d'octets copiés
toString
Renvoie la représentation sous forme de chaîne de l'objet. Généralement, "[Native Object]" est renvoyé. L'objet peut être réimplémenté en fonction de ses propres caractéristiques.
1String BufferedStream.toString();
Résultats de retour :
- String, renvoie la représentation sous forme de chaîne de l'objet
toJSON
Renvoie une représentation au format JSON de l'objet, renvoyant généralement une collection de propriétés lisibles définies par l'objet.
1Value BufferedStream.toJSON(String key = "");
Paramètres d'appel :
- key: Chaîne, non utilisée
Résultats de retour :
- Value, renvoie une valeur contenant du JSON sérialisable