學習node.js(二)—— Buffer

在node中,在處理網絡協議、操作數據庫、處理圖片、接收上傳文件、在處理網絡流和文件的操作中,還需要處理大量二進制數據,js原有的字符串不足以滿足這些需求,於是Buffer應運而生;

Buffer對象

Buffer對象類似於數組,它的元素爲16進制的兩位數,即0到255的數值。

  • 不同編碼的字符串佔有元素的個數不一樣,中文字在UTF-8下佔用三個元素,字母和半角標符號佔一個元素;
  • 不同的編碼規則(base64、UTF-8),相同的字符佔有的元素個數也不一樣;

例如:
這裏寫圖片描述

  • Buffer也可以通過length屬性得到長度,也可以通過下標訪問元素,在構造對象時也很相似:
   var bufffer = new Buffer(10)
   console.log(buffer.length); // 10

Buffer實例方法

這裏寫圖片描述

var buf = new Buffer('hello jinghong');
buf.length; // 14
buf.write('Hi jinghong');//11
buf.toString(); //'Hi jinghong'
buf.length; //14這個長度是初始化Buffer時候指定的
buf.write('  jinghongjinghongjinghong', 2, 16); //12
buf.toString(); // 'Hi  jinghongji'
var buf = new Buffer('hello world')
buf.length;//11
var buf2 = new Buffer(5);
buf.copy(buf2);//5
buf2.toString();//hello
buf.copy(buf2, 0, 6, 11)//5, buf2是從buf的第6位開始複製到第11位(不包含第11位);buf2是從第1位開始寫入;
buf2.toString(); // world
發佈了63 篇原創文章 · 獲贊 36 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章