Descrição do método:
Escreva a string no deslocamento do buffer usando a codificação especificada.
Retorna quantos bytes octais foram escritos.
Se o buffer não tiver espaço suficiente para acomodar a corda inteira, apenas a string será gravada.
gramática:
A cópia do código é a seguinte:
Buffer.Write (String, [offset], [comprimento], [codificação])
Receber parâmetros:
String string, dados gravados no buffer.
Número de oferta, opcional, padrão 0. Os dados são gravados no local do buffer.
Número de comprimento, opcional, padrão: buffer.length offset, duração dos dados a serem escritos
A codificação da string, o formato de codificação que deve ser usado, opcional, o padrão é "utf8".
exemplo:
A cópia do código é a seguinte:
BUF = novo buffer (256);
len = buf.write (' /u00bd + /u00bc = /u00be', 0);
console.log (len + "bytes:" + buf.tostring ('utf8', 0, len));
Código -fonte:
A cópia do código é a seguinte:
Buffer.prototype.write = function (string, deslocamento, comprimento, codificação) {
// Permitir gravação (string, codificação)
if (util.isstring (deslocamento) && util.isundefined (comprimento)) {
codificação = deslocamento;
deslocamento = 0;
// Permitir gravação (string, deslocamento [, comprimento], codificação)
} else if (isfinite (deslocamento)) {
deslocamento = ~~ Offset;
if (isfinite (comprimento)) {
comprimento = ~~ comprimento;
} outro {
codificação = comprimento;
comprimento = indefinido;
}
// xxx Legacy Write (String, Coding, Offset, Comprimento) - Remova em V0.13
} outro {
if (! writewarned) {
if (process.throwdeprecation)
lançar um novo erro (WRITEMSG);
caso contrário, se (process.TrekeEprecation)
console.Trace (WRITEMSG);
outro
console.Error (WRITEMSG);
writewarned = true;
}
var swap = codificação;
codificação = deslocamento;
deslocamento = ~~ comprimento;
comprimento = troca;
}
var restante = this.length - deslocamento;
if (util.isundefined (comprimento) || comprimento> restante)
comprimento = restante;
codificação = !! codificação? (codificação + '') .tolowerCase (): 'utf8';
if (string.length> 0 && (comprimento <0 || deslocamento <0))
lançar novo RangeError ('Tentativa de escrever além dos limites de buffer');
var ret;
Switch (codificação) {
Caso 'Hex':
ret = this.hexwrite (string, deslocamento, comprimento);
quebrar;
caso 'utf8':
case 'utf-8':
ret = this.utf8Write (string, deslocamento, comprimento);
quebrar;
caso 'ASCII':
ret = this.asciiwrite (string, deslocamento, comprimento);
quebrar;
Caso 'binário':
ret = this.binaryWrite (string, deslocamento, comprimento);
quebrar;
case 'base64':
// Aviso: MaxLength não levado em consideração no BASE64WRITE
ret = this.base64Write (string, deslocamento, comprimento);
quebrar;
caso 'ucs2':
caso 'ucs-2':
caso 'utf16le':
Caso 'UTF-16LE':
ret = this.ucs2Write (string, deslocamento, comprimento);
quebrar;
padrão:
lançar novo TypeError ('codificação desconhecida:' + codificação);
}
retorno de retorno de retorno;
};