Description de la méthode :
Écrivez la chaîne au décalage du tampon en utilisant l'encodage spécifié.
Renvoie le nombre d'octets écrits.
Si le Buffer n'a pas assez d'espace pour contenir la chaîne entière, alors seule une partie de la chaîne sera écrite.
Grammaire :
buffer.write(string, [offset], [length], [encoding])
Paramètres de réception :
string String, les données écrites dans le tampon.
numéro de décalage, facultatif, 0 par défaut. L'emplacement où les données sont écrites dans le tampon.
length Nombre, facultatif, par défaut : buffer.length – offset, la longueur des données à écrire
encoding String, le format d'encodage à utiliser, facultatif, la valeur par défaut est "utf8".
Exemple :
buf = nouveau tampon (256);
len = buf.write('u00bd u00bc = u00be', 0);
console.log(len " octets : " buf.toString('utf8', 0, len));
Code source :
Buffer.prototype.write = function(string, offset, length, encoding) {
// autoriser l'écriture (chaîne, encodage)
if (util.isString(offset) && util.isUndefined(length)) {
encodage = décalage ;
décalage = 0;
// autoriser l'écriture (string, offset [, length], encoding)
} sinon if (isFinite(offset)) {
décalage = ~~décalage;
if (isFinite(length)) {
longueur = ~~longueur;
} autre {
encodage = longueur;
longueur = indéfini ;
>
// XXX écriture héritée (chaîne, encodage, décalage, longueur) - supprimée dans la v0.13
} autre {
si (!writeWarned) {
if (process.throwDeprecation)
lancer une nouvelle erreur (writeMsg);
sinon si (process.traceDeprecation)
console.trace(writeMsg);
d'autre
console.error(writeMsg);
writeWarned = vrai;
>
var swap = encodage;
encodage = décalage ;
décalage = ~~longueur;
longueur = échange ;
>
var restant = this.length - offset;
if (util.isUndefined(length) || length > restant)
longueur = restant;
encodage = !!encodage ? (codage '').toLowerCase() : 'utf8';
if (string.length > 0 && (length < 0 || offset < 0))
throw new RangeError('tentative d'écriture au-delà des limites du tampon');
var ret;
commutateur (encodage) {
cas 'hex' :
ret = this.hexWrite(string, offset, length);
pause;
cas 'utf8' :
cas 'utf-8' :
ret = this.utf8Write(string, offset, length);
pause;
cas 'ascii' :
ret = this.asciiWrite(string, offset, length);
pause;
cas 'binaire' :
ret = this.binaryWrite(string, offset, length);
pause;
cas 'base64' :
// Attention : maxLength non pris en compte en base64Write
ret = this.base64Write(string, offset, length);
pause;
cas 'ucs2' :
cas 'ucs-2' :
cas 'utf16le' :
cas 'utf-16le' :
ret = this.ucs2Write(string, offset, length);
pause;
par défaut :
throw new TypeError('Encodage inconnu : ' encodage);
>
retour ret;
};