node.js中的buffer.write方法使用说明


Posted in Javascript onDecember 10, 2014

方法说明:

将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 相关文章推荐
JS input 数字验证代码
Jul 30 Javascript
Extjs在exlipse中设置自动提示的方法
Apr 07 Javascript
SWFObject 2.1以上版本语法介绍
Jul 10 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
Mar 07 Javascript
jQuery弹出框代码封装DialogHelper
Jan 30 Javascript
向JavaScript的数组中添加元素的方法小结
Oct 24 Javascript
JavaScript添加随滚动条滚动窗体的方法
Feb 23 Javascript
微信小程序实现收藏与取消收藏切换图片功能
Aug 03 Javascript
微信小程序 WXML节点信息查询详解
Jul 29 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
layui 中select下拉change事件失效的解决方法
Sep 20 Javascript
jquery插件实现悬浮的菜单
Apr 24 jQuery
node.js中的http.request.end方法使用说明
Dec 10 #Javascript
node.js中的emitter.on方法使用说明
Dec 10 #Javascript
node.js中的events.emitter.once方法使用说明
Dec 10 #Javascript
node.js中的emitter.emit方法使用说明
Dec 10 #Javascript
node.js中的events.emitter.removeListener方法使用说明
Dec 10 #Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 #Javascript
node.js中的events.emitter.removeAllListeners方法使用说明
Dec 10 #Javascript
You might like
php开发环境配置记录
2011/01/14 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
2012/08/31 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
js压缩利器
2007/02/20 Javascript
转一个日期输入控件,支持FF
2007/04/27 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
AngularJS中的过滤器filter用法完全解析
2016/04/22 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
javascript中replace使用方法总结
2017/03/01 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
使用Vue-Awesome-Swiper实现旋转叠加轮播效果&amp;平移轮播效果
2019/08/16 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
[51:53]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第二场 11.01
2020/11/02 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
利用Python爬取可用的代理IP
2016/08/18 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
css sprite简单实例
2016/05/23 HTML / CSS
FORZIERI福喜利中国官网:奢侈品购物梦工厂
2019/05/03 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
学期自我鉴定范文
2013/10/01 职场文书
经理秘书岗位职责
2013/11/14 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
生活部的活动方案
2014/08/19 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
预备党员考察意见范文
2015/06/01 职场文书