Buffers in NodeJS // v0.12.15
// Buffer.isEncoding(encoding)
console.log(Buffer.isEncoding("base64"));
// Buffer.isBuffer(obj)
var buff = new Buffer("This is string", "utf8");
console.log(Buffer.isBuffer(buff));
// Buffer.byteLength(string[, encoding])
var str = '\u00bd + \u00bc = \u00be';
console.log(str + " : " + str.length + " characters | " + Buffer.byteLength(str, "utf8") + " bytes");
// Buffer.concat(list[, totalLength])
var buff1 = new Buffer("Jumping");
var buff2 = new Buffer("Jupang");
var buffSpace = new Buffer(1);
buffSpace[0] = "32";
var newBuff = Buffer.concat([buff1, buffSpace, buff2], (buff1.length + buff2.length + buffSpace.length));
console.log(newBuff.toString());
// Buffer.compare(buf1, buf2)
var arr = [Buffer('1234'), Buffer('0123')];
console.log(arr.toString());
arr.sort(Buffer.compare);
console.log(arr.toString());
// buf.write(string[, offset][, length][, encoding])
var buf = new Buffer(256);
var len = buf.write('\u00bd + \u00bc = \u00be', 0);
console.log(len + " bytes: " + buf.toString('utf8', 0, len));
// buf.toString([encoding][, start][, end]
var buff4 = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
buff4[i] = i + 97; // 97 is ASCII a
}
console.log(buff4.toString('ascii')); // outputs: abcdefghijklmnopqrstuvwxyz
console.log(buff4.toString('ascii',0,5)); // outputs: abcde
console.log(buff4.toString('utf8',0,5)); // outputs: abcde
console.log(buff4.toString(undefined,0,5)); // encoding defaults to 'utf8', outputs abcde
// buf.toJSON()
var buff5 = new Buffer("test");
var json = JSON.stringify(buff5);
var json2 = buff5.toJSON();
console.log(json);
console.log(json2);
var copy = JSON.parse(json, function(key, value){
return value && value.type === 'Buffer'
? new Buffer(value.data)
: value;
});
console.log(copy.toString());
// buf[index]
var strr = "Node.js";
var buff6 = new Buffer(strr.length);
for(var j=0; j<strr.length; j++){
buff6[j] = strr.charCodeAt(j);
}
console.log(buff6.toString());// new Buffer(size);
var buff = new Buffer(10);
buff.fill(0);
console.log(buff);
// new Buffer(array)
var buff1 = new Buffer([ 86, 67, 74, 51, 37, 0, 91]);
console.log(buff1);
console.log(buff1.toString());
// new Buffer(buffer)
buff.write("Vijay");
var buff2 = new Buffer(buff);
console.log(buff2.toString());
// new Buffer(str[, encoding])
var buff3 = new Buffer("This is string", "utf8");
console.log(buff3.toString());// https://nodejs.org/dist/v0.12.15/docs/api/buffer.html
// Slicing a buffer
var buff = new Buffer("This is parent buffer");
var childBuff = buff.slice(8, 16);
console.log(buff.toString());
console.log(childBuff.toString());
buff[8] = "99";
console.log(buff.toString());
console.log(childBuff.toString());
// Copying a buffer
var buff1 = new Buffer("This is parent buffer");
var buff2 = new Buffer(8);
var targetStart = 0;
var sourceStart = 8;
var sourceEnd = 16;
buff1.copy(buff2, targetStart, sourceStart, sourceEnd);
console.log(buff1.toString("utf8"));
console.log(buff2.toString());
buff1[8] = "99";
console.log(buff1.toString());
console.log(buff2.toString());