你的位置:首页 > Java教程

[Java教程]Buffer篇


// var buf1 = new Buffer(26);
/*返回一个新的buffer对象,这个新buffer和老buffer公用一个内存。
但是被start和end索引偏移缩减了。(比如,一个buffer里有1到10个字节,
我们只想要4-8个字节,就可以用这个函数buf.slice(4,8),因为他们共用一个内存,所以不会消耗内存,)
因为共用内存,所以修改新的buffer后,老buffer的内容同样也会被修改。
start      开始位置,默认
end      结束位置,默认为buffer长度*/
// for (var i = 0 ; i < 26 ; i++) {
//   buf1[i] = i + 97; // 97 is ASCII a
// }

// var buf2 = buf1.slice(0, 3);
// console.log(buf2.toString('ascii', 0, buf2.length));

// buf1[0] = 33;
// console.log(buf2.toString('ascii', 0, buf2.length));


// Buffer.prototype.slice = function(start, end) {
//   var len = this.length;
//   start = ~~start;
//   end = util.isUndefined(end) ? len : ~~end;
//   if (start < 0) {
//     start += len;
//     if (start < 0)
//       start = 0;
//   } else if (start > len) {
//     start = len;
//   }
//   if (end < 0) {
//     end += len;
//     if (end < 0)
//       end = 0;
//   } else if (end > len) {
//     end = len;
//   }
//   if (end < start)
//     end = start;
//   var buf = new NativeBuffer();
//   sliceOnto(this, buf, start, end);
//   buf.length = end - start;
//   if (buf.length > 0)
//     buf.parent = util.isUndefined(this.parent) ? this : this.parent;
//   return buf;
// };