node.js中的buffer.write方法使用说明
node.js中的buffer.write方法使用说明
发布时间:2016-12-30 来源:查字典编辑
摘要:方法说明:将string使用指定的encoding写入到buffer的offset处。返回写入了多少个八进制字节。如果Buffer没有足够的...

方法说明:

将string使用指定的encoding写入到buffer的offset处。

返回写入了多少个八进制字节。

如果Buffer没有足够的空间来适应整个string,那么将只有string的部分被写入。

语法:

复制代码 代码如下:

buffer.write(string, [offset], [length], [encoding])

接收参数:

string String,被写入buffer的数据.

offet number,可选,默认0.数据写入到buffer的位置.

length Number,可选,默认:buffer.length – offset,要写入数据的长度

encoding String,需要使用的编码格式,可选,默认为”utf8″.

例子:

复制代码 代码如下:

buf = new Buffer(256);

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

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

源码:

复制代码 代码如下:

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;

};

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Javascript教程学习
热门Javascript教程学习
编程开发子分类