node.js中的buffer.write方法使用说明
作者:bea
方法说明: 将string使用指定的encoding写入到buffer的offset处。 返回写入了多少个八进制字节。 如果Buffer没有足够的空间来适应整个string,那么将只有string的部分被写入。 语法: 代码如下: buffer.write(string, [offset], [length], [encoding]) 接收参数: string String,被写入buffer的数据. offet number,可选,默认0.数据写入到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;
};
有用 | 无用
将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;
};
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- jQuery实现瀑布流布局
- jquery+ajax验证不通过也提交表单问题处理
- js 左右悬浮对联广告代码示例
- 原生JavaScript+LESS实现瀑布流
- jquery禁止回车触发表单提交
- 完美兼容各大浏览器的jQuery插件实现图片切换特效
- windows8.1+iis8.5下安装node.js开发环境
- jQuery 和 CSS 的文本特效插件集锦
- js使用递归解析xml
- 做web开发 先学JavaScript
- 兼容主流浏览器的JS复制内容到剪贴板
- Javascript模拟加速运动与减速运动代码分享
- javascript中HTMLDOM操作详解
- javascript实现修改微信分享的标题内容等
- javascript表单验证和Window详解
- 使用百度地图api实现根据地址查询经纬度
- javascript实现倒计时N秒后网页自动跳转代码
- node.js中的buffer.Buffer.byteLength方法使用说明
- node.js中的buffer.slice方法使用说明