Метод Описание:
Напишите строку в смещение буфера, используя указанное кодирование.
Возвращает, сколько восьми байтов было написано.
Если у буфера не хватает места для размещения всей строки, будет записана только строка.
Грамматика:
Кода -копия выглядит следующим образом:
buffer.write (String, [offset], [длина], [кодирование])
Получить параметры:
строка строки, данные, записанные в буфер.
Номер предложения, необязательно, по умолчанию 0. Данные записываются в локацию буфера.
Номер длины, необязательно, по умолчанию: Buffer.Length Offset, длина данных, которые будут записаны
Строка кодирования, формат кодирования, необходимый для использования, необязательно, по умолчанию - «UTF8».
пример:
Кода -копия выглядит следующим образом:
BUF = новый буфер (256);
len = buf.write (' /u00bd + /u00bc = /u00be', 0);
console.log (len + "bytes:" + buf.tostring ('utf8', 0, len));
Исходный код:
Кода -копия выглядит следующим образом:
Buffer.prototype.write = function (строка, смещение, длина, кодирование) {
// разрешить записать (строка, кодирование)
if (util.isstring (offset) && util.isundefined (длина)) {
кодирование = смещение;
offset = 0;
// разрешить записать (строка, смещение [, длина], кодирование)
} else if (isfinite (offset)) {
offset = ~~ offset;
if (iSfinite (длина)) {
длина = ~~ длина;
} еще {
кодирование = длина;
длина = не определен;
}
// xxx Legacy Write (строка, кодирование, смещение, длина) - удалить в v0.13
} еще {
if (! writewarned) {
if (process.trowdeprecation)
бросить новую ошибку (writemsg);
иначе if (process.tracedeprecation)
Console.Trace (WriteMsg);
еще
console.error (writemsg);
writewarned = true;
}
var swap = кодирование;
кодирование = смещение;
offset = ~~ длина;
длина = обмен;
}
var остается = this.length - offset;
if (util.isundefined (длина) || длина> оставшаяся)
длина = оставшаяся;
Кодирование = !! Кодирование? (кодирование + '') .tolowercase (): 'utf8';
if (string.length> 0 && (длина <0 || смещение <0))
бросить новый DrangeError («Попытка написать за пределами буферных границ»);
var ret;
Switch (кодирование) {
Дело 'hex':
ret = this.Hexwrite (строка, смещение, длина);
перерыв;
case 'utf8':
Case 'UTF-8':
ret = this.utf8write (строка, смещение, длина);
перерыв;
Case 'ascii':
ret = this.asciiWrite (строка, смещение, длина);
перерыв;
Дело «бинарное»:
ret = this.binaryWrite (строка, смещение, длина);
перерыв;
Case 'base64':
// Предупреждение: maxlength не учитывается в Base64write
ret = this.base64write (строка, смещение, длина);
перерыв;
Case 'UCS2':
Case 'UCS-2':
case 'utf16le':
Case 'UTF-16LE':
ret = this.ucs2write (строка, смещение, длина);
перерыв;
по умолчанию:
бросить новый TypeError ('Неизвестное кодирование:' + кодирование);
}
возврат возврата;
};