Use instructions for the buffer.write method in node.js
- 2020-03-30 04:35:45
- OfStack
Method description:
Writes the string to the offset of the buffer with the specified encoding.
Returns how many octal bytes were written.
If the Buffer does not have enough space to accommodate the entire string, only the part of the string is written.
Grammar:
buffer.write(string, [offset], [length], [encoding])
Receiving parameters:
String String, the data written to the buffer.
Offet Number, optional, default 0. Data is written to the location of the buffer.
Length Number, optional, default :buffer.length offset, to write the length of the data
Encoding String, the encoding format to use, optional, default to "utf8".
Example:
buf = new Buffer(256);
len = buf.write('u00bd + u00bc = u00be', 0);
console.log(len + " bytes: " + buf.toString('utf8', 0, len));
Source:
Buffer.prototype.write = function(string, offset, length, encoding) {
// allow write(string, encoding)
if (util.isString(offset) && util.isUndefined(length)) {
encoding = offset;
offset = 0;
// allow write(string, offset[, length], encoding)
} else if (isFinite(offset)) {
offset = ~~offset;
if (isFinite(length)) {
length = ~~length;
} else {
encoding = length;
length = undefined;
}
// XXX legacy write(string, encoding, offset, length) - remove in v0.13
} else {
if (!writeWarned) {
if (process.throwDeprecation)
throw new Error(writeMsg);
else if (process.traceDeprecation)
console.trace(writeMsg);
else
console.error(writeMsg);
writeWarned = true;
}
var swap = encoding;
encoding = offset;
offset = ~~length;
length = swap;
}
var remaining = this.length - offset;
if (util.isUndefined(length) || length > remaining)
length = remaining;
encoding = !!encoding ? (encoding + '').toLowerCase() : 'utf8';
if (string.length > 0 && (length < 0 || offset < 0))
throw new RangeError('attempt to write beyond buffer bounds');
var ret;
switch (encoding) {
case 'hex':
ret = this.hexWrite(string, offset, length);
break;
case 'utf8':
case 'utf-8':
ret = this.utf8Write(string, offset, length);
break;
case 'ascii':
ret = this.asciiWrite(string, offset, length);
break;
case 'binary':
ret = this.binaryWrite(string, offset, length);
break;
case 'base64':
// Warning: maxLength not taken into account in base64Write
ret = this.base64Write(string, offset, length);
break;
case 'ucs2':
case 'ucs-2':
case 'utf16le':
case 'utf-16le':
ret = this.ucs2Write(string, offset, length);
break;
default:
throw new TypeError('Unknown encoding: ' + encoding);
}
return ret;
};