Maison >interface Web >js tutoriel >Instructions d'utilisation de la méthode buffer.write dans node.js_node.js

Instructions d'utilisation de la méthode buffer.write dans node.js_node.js

WBOY
WBOYoriginal
2016-05-16 16:27:471571parcourir

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 :

Copier le code Le code est le suivant :

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 :

Copier le code Le code est le suivant :

buf = nouveau tampon (256);

len = buf.write('u00bd u00bc = u00be', 0);

console.log(len " octets : " buf.toString('utf8', 0, len));

Code source :

Copier le code Le code est le suivant :

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;
};
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn