Node.js: Buffer

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

JavaScript thuần túy thân thiện với Unicode, nhưng đối với dữ liệu nhị phân thì không. Vậy nên khi xử lý các luồng TCP hoặc hệ thống tệp sẽ cần phải xử lý các luồng octet. Node.js cung cấp lớp Buffer cung cấp các thể hiện để lưu trữ dữ liệu thô tương tự như một mảng các số nguyên nhưng tương ứng với một phân bổ bộ nhớ thô bên ngoài vùng heap V8.

Lớp Buffer là một lớp toàn cục (global) có thể được truy cập trong một ứng dụng mà không cần import mô-đun buffer.

Tạo Buffer

Buffer có thể được xây dựng theo nhiều cách khác nhau.

Cách 1:

Sau đây là cú pháp để tạo Buffer gồm 10 octet:

var buf = new Buffer(10);

Cách 2:

Sau đây là cú pháp để tạo Buffer từ một mảng đã cho:

var buf = new Buffer([10, 20, 30, 40, 50]);

Cách 3:

Sau đây là cú pháp để tạo Buffer từ một chuỗi nhất định và kiểu mã hóa tùy chọn:

var buf = new Buffer("Dễ dàng học Node.js", "utf-8");

"utf8" là mã hóa mặc định, và ngoài ra ta có thể sử dụng bất kỳ mã hóa nào như "ascii", "utf8", "utf16le", "ucs2", "base64" hoặc "hex".

Ghi vào Buffer

Cú pháp

Sau đây là cú pháp của phương thức để ghi vào Buffer:

buf.write(string[, offset][, length][, encoding])

Trong đó:

  • string: Đây là dữ liệu chuỗi được ghi vào bộ đệm.
  • offset: Đây là chỉ số của bộ đệm để bắt đầu ghi. Giá trị mặc định là 0.
  • length: Đây là số byte để ghi. Mặc định là buffer.length.
  • encoding: Mã hóa để sử dụng, trong đó 'utf8' là mã hóa mặc định.

Giá trị trả về

Phương thức này trả về số octet được viết. Nếu không có đủ không gian trong bộ đệm để phù hợp với toàn bộ chuỗi, nó sẽ ghi một phần của chuỗi.

Ví dụ

buf = new Buffer(256);
len = buf.write("Dễ dàng học Node.js");

console.log("Số lượng octet được ghi : " + len);

Lưu đoạn code trên vào file "demo_buffer1.js" và thực thi:

C:\Users\Your name>node demo_buffer1.js

Kết quả:

Số lượng octet được ghi : 24

Đọc từ Buffer

Cú pháp

Sau đây là cú pháp của phương thức để đọc dữ liệu từ Buffer:

buf.toString([encoding][, start][, end])

Trong đó:

  • encoding Mã hóa để sử dụng với 'utf8' là mã hóa mặc định.
  • start: Chỉ mục bắt đầu để bắt đầu đọc, mặc định là 0.
  • end: Chỉ mục kết thúc để kết thúc quá trình đọc, mặc định là bộ đệm hoàn chỉnh.

Giá trị trả về

Phương thức này sẽ giải mã và trả về một chuỗi từ dữ liệu đệm được mã hóa bằng cách sử dụng mã hóa bộ ký tự được chỉ định.

Ví dụ

buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
  buf[i] = i + 97;
}

// kết quả: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString('ascii'));
// kết quả: abcde
console.log( buf.toString('ascii',0,5));
// kết quả: abcde
console.log( buf.toString('utf8',0,5));
// mã hóa mặc định là 'utf8', nên kết quả
// cũng sẽ là abcde
console.log( buf.toString(undefined,0,5));

Lưu đoạn code trên vào file "demo_buffer2.js" và thực thi:

C:\Users\Your name>node demo_buffer2.js

Kết quả:

abcdefghijklmnopqrstuvwxyz
abcde
abcde
abcde

Chuyển đổi Buffer sang JSON

Cú pháp

Sau đây là cú pháp của phương thức để chuyển đổi từ Buffer thành đối tượng JSON:

buf.toJSON()

Giá trị trả về

Phương thức này trả về một biểu diễn JSON của đối tượng Buffer.

Ví dụ

var buf = new Buffer('Dễ dàng học Node.js');
var json = buf.toJSON(buf);

console.log(json);

Lưu đoạn code trên vào file "demo_buffer3.js" và thực thi:

C:\Users\Your name>node demo_buffer3.js

Kết quả:

{
  type: 'Buffer',
  data: [
     68, 225, 187, 133,  32, 100,
    195, 160, 110, 103,  32, 104,
    225, 187, 141,  99,  32,  78,
    111, 100, 101,  46, 106, 115
  ]
}

Nối các Buffer

Cú pháp

Sau đây là cú pháp của phương thức để nối các Buffer:

Buffer.concat(list[, totalLength])

Trong đó:

  • list: Mảng Danh sách các đối tượng Buffer được nối.
  • totalLength: Đây là tổng chiều dài của các bộ đệm khi được nối.

Giá trị trả về

Phương thức này trả về một đối tượng Buffer.

Ví dụ

var buffer1 = new Buffer('V1Study ');
var buffer2 = new Buffer(': Nơi tài năng công nghệ phát triển');
var buffer3 = Buffer.concat([buffer1,buffer2]);

console.log("Nội dung của buffer3: " + buffer3.toString());

Lưu đoạn code trên vào file "demo_buffer4.js" và thực thi:

C:\Users\Your name>node demo_buffer4.js

Kết quả:

Nội dung của buffer3: V1Study : Nơi tài năng công nghệ phát triển

So sánh các Buffer

Cú pháp

Sau đây là cú pháp của phương thức để so sánh hai Buffer với nhau:

buf.compare(otherBuffer);

Trong đó:

  • otherBuffer: Đây là bộ đệm khác sẽ được so sánh với buf

Giá trị trả về

Trả về một số cho biết nó đứng trước hay sau hoặc giống với Buffer khác theo thứ tự sắp xếp.

Ví dụ

var buffer1 = new Buffer('V1');
var buffer2 = new Buffer('Study');
var result = buffer1.compare(buffer2);

if(result < 0) {
   console.log(buffer1 +" đứng trước " + buffer2);
} else if(result === 0) {
   console.log(buffer1 +" cùng vị trí với " + buffer2);
} else {
   console.log(buffer1 +" đứng sau " + buffer2);
}

Lưu đoạn code trên vào file "demo_buffer5.js" và thực thi:

C:\Users\Your name>node demo_buffer5.js

Kết quả:

V1 đứng sau Study

Sao chép Buffer

Cú pháp

Sau đây là cú pháp của phương thức để sao chép một Buffer:

buf.copy(targetBuffer[, targetStart][, sourceStart][, sourceEnd])

Trong đó:

  • targetBuffer: Đối tượng đệm nơi bộ đệm sẽ được sao chép.
  • targetStart: một số, đây là tùy chọn, mặc định là 0
  • sourceStart: một số, đây là tùy chọn, mặc định là 0
  • sourceEnd: một số, đây là tùy chọn, mặc định là buffer.length

Giá trị trả về

Phương thức này không trả về giá trị. Theo đó, nó sẽ sao chép dữ liệu từ một vùng của bộ đệm này sang một vùng trong bộ đệm đích ngay cả khi vùng bộ nhớ đích trùng lặp với nguồn. Nếu không được xác định thì các tham số targetStart và sourceStart mặc định là 0, còn sourceEnd mặc định là buffer.length.

Ví dụ

var buffer1 = new Buffer('V1Study');

//copy Buffer:
var buffer2 = new Buffer(3);
buffer1.copy(buffer2);
console.log("buffer2 chứa nội dung: " + buffer2.toString());

Lưu đoạn code trên vào file "demo_buffer6.js" và thực thi:

C:\Users\Your name>node demo_buffer6.js

Kết quả:

buffer2 chứa nội dung: V1S

Cắt Buffer

Cú pháp

Sau đây là cú pháp của phương thức để lấy vùng đệm con của Buffer:

buf.slice([start][, end])

Trong đó:

  • start: vị trí bắt đầu, mặc định là 0
  • end: vị trí kết thúc, mặc định là buf.length

Giá trị trả về

Trả về một bộ đệm mới tham chiếu cùng một bộ nhớ với bộ nhớ cũ, nhưng bù đắp và cắt xén bởi các chỉ mục start (mặc định là 0) và end (mặc định là buf.length). Các chỉ mục âm bắt đầu từ phần cuối của bộ đệm.

Ví dụ

var buffer1 = new Buffer('V1Study');

//cắt một phần buffer:
var buffer2 = buffer1.slice(0,3);
console.log("buffer2 chứa nội dung: " + buffer2.toString());

Lưu đoạn code trên vào file "demo_buffer7.js" và thực thi:

C:\Users\Your name>node demo_buffer7.js

Kết quả:

buffer2 chứa nội dung: V1S

Lấy kích thước Buffer

Cú pháp

Sau đây là cú pháp của phương thức để lấy kích thước của Buffer được tính bằng byte:

buf.length;

Giá trị trả về

Trả về kích thước của bộ đệm tính bằng byte.

Ví dụ

var buffer = new Buffer('V1Study');

console.log("Độ dài của buffer: " + buffer.length);

Lưu đoạn code trên vào file "demo_buffer7.js" và thực thi:

C:\Users\Your name>node demo_buffer7.js

Kết quả:

Độ dài của buffer: 7

Một phương thức tham khảo khác

Phương thức và mô tả

new Buffer(size)

Phân bổ một bộ đệm mới có kích thước octet. Lưu ý rằng kích thước không được lớn hơn kMaxLength. Nếu không, một RangeError sẽ được ném vào đây.

new Buffer(buffer)

Sao chép dữ liệu bộ đệm đã truyền vào một đối tượng Buffer.

new Buffer(str[, encoding])

Phân bổ một bộ đệm mới có chứa str đã cho, mã hóa mặc định là 'utf8'.

buf.length

Trả về kích thước của bộ đệm tính bằng byte. Lưu ý rằng đây không nhất thiết phải là kích thước của nội dung. length đề cập đến lượng bộ nhớ được cấp phát cho đối tượng buf. Nó không thay đổi khi nội dung của bộ đệm được thay đổi.

buf.write(string[, offset][, length][, encoding])

Ghi một chuỗi vào bộ đệm ở độ lệch bằng cách sử dụng mã hóa đã cho. offset mặc định là 0, mã hóa mặc định thành 'utf8'. length là số byte để ghi. Trả về số octet được ghi.

buf.writeUIntLE(value, offset, byteLength[, noAssert])

Ghi một giá trị vào bộ đệm tại offset và byteLength được chỉ định. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực value và offset. Giá trị mặc định là false.

buf.writeUIntBE(value, offset, byteLength[, noAssert])

Ghi một giá trị vào bộ đệm tại offset và byteLength được chỉ định. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực value và offset. Giá trị mặc định là false.

buf.writeIntLE(value, offset, byteLength [, noAssert])

Ghi một giá trị vào bộ đệm tại offset và byteLength được chỉ định. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực value và offset. Giá trị mặc định là false.

buf.writeIntBE(value, offset, byteLength [, noAssert])

Ghi một giá trị vào bộ đệm tại offset và byteLength được chỉ định. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực value và offset. Giá trị mặc định là false.

buf.readUIntLE(offset, byteLength [, noAssert])

Một phiên bản tổng quát của tất cả các phương pháp đọc số. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực giá trị bù. Nó có nghĩa là phần bù có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readUIntBE(offset, byteLength[, noAssert])

Một phiên bản tổng quát của tất cả các phương thức đọc số. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là phần bù có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readIntLE(offset, byteLength[, noAssert])

Một phiên bản tổng quát của tất cả các phương thức đọc số. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là phần bù có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readIntBE(offset, byteLength[, noAssert])

Một phiên bản tổng quát của tất cả các phương thức đọc số. Hỗ trợ độ chính xác lên đến 48 bit. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là phần bù có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.toString([encoding][, start][, end])

Giải mã và trả về một chuỗi từ dữ liệu đệm được mã hóa bằng cách sử dụng mã hóa bộ ký tự được chỉ định.

buf.toJSON()

Trả về một biểu diễn JSON của đối tượng Buffer. JSON.stringify gọi hàm này một cách ngầm định khi xâu chuỗi một đối tượng Buffer.

buf[index]

Nhận và đặt octet tại index. Các giá trị tham chiếu đến từng byte riêng lẻ, vì vậy phạm vi hợp pháp là từ 0x00 đến 0xFF (hệ 16) hoặc 0 và 255.

buf.equals(otherBuffer)

Trả về boolean nếu bộ đệm này và bộ đệm khác có cùng byte.

buf.compare(otherBuffer)

Trả về một số cho biết liệu bộ đệm này đến trước hay sau hoặc giống với bộ đệm khác theo thứ tự sắp xếp.

buf.copy(targetBuffer[, targetStart][, sourceStart][, sourceEnd])

Sao chép dữ liệu từ một vùng của bộ đệm này sang một vùng trong bộ đệm đích ngay cả khi vùng bộ nhớ đích trùng lặp với nguồn. Nếu không được xác định, các tham số targetStart và sourceStart mặc định là 0, trong khi sourceEnd mặc định là buf.length.

buf.slice([start][, end])

Trả về một bộ đệm mới tham chiếu cùng một bộ nhớ với bộ nhớ cũ, nhưng được bù đắp và cắt xén bởi các chỉ mục start (mặc định là 0) và end (mặc định là buf.length). Các chỉ mục âm bắt đầu từ phần cuối của bộ đệm.

buf.readUInt8(offset[, noAssert])

Đọc một số nguyên 8 bit không dấu từ bộ đệm tại độ lệch được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readUInt16LE(offset[, noAssert])

Đọc một số nguyên 16 bit không dấu từ bộ đệm tại khoảng chênh lệch được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readUInt16BE(offset[, noAssert])

Đọc một số nguyên 16 bit không dấu từ bộ đệm tại khoảng chênh lệch được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readUInt32LE(offset[, noAssert])

Đọc một số nguyên 32-bit không dấu từ bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readUInt32BE(offset[, noAssert])

Đọc một số nguyên 32-bit không dấu từ bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readInt8(offset[, noAssert])

Đọc một số nguyên 8 bit có dấu từ bộ đệm tại độ lệch được chỉ định. Đặt noAssert thành true để bỏ qua xác thực giá trị bù. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readInt16LE(offset[, noAssert])

Đọc một số nguyên 16 bit có dấu từ bộ đệm tại offset được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readInt16BE(offset[, noAssert])

Đọc một số nguyên 16 bit có dấu từ bộ đệm tại offset được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readInt32LE(offset[, noAssert])

Đọc một số nguyên 32-bit có dấu từ bộ đệm tại offset được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readInt32BE(offset[, noAssert])

Đọc một số nguyên 32-bit có dấu từ bộ đệm tại offset được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readFloatLE(offset [, noAssert])

Đọc một số nổi 32-bit từ bộ đệm tại offset được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readFloatBE(offset[, noAssert])

Đọc một số nổi 32-bit từ bộ đệm tại offset được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readDoubleLE(offset[, noAssert])

Đọc 64 bit kép từ bộ đệm tại khoảng lệch được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.readDoubleBE(offset[, noAssert])

Đọc 64 bit kép từ bộ đệm tại khoảng lệch được chỉ định với định dạng endian được chỉ định. Đặt noAssert thành true để bỏ qua xác thực offset. Nó có nghĩa là offset có thể nằm ngoài phần cuối của bộ đệm. Giá trị mặc định là false.

buf.writeUInt8(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định. Lưu ý rằng giá trị phải là số nguyên 8 bit không dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là value có thể quá lớn đối với chức năng cụ thể và offsetcó thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeUInt16LE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 16 bit không dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn. Giá trị mặc định là false.

buf.writeUInt16BE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 16 bit không dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeUInt32LE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 32 bit không dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeUInt32BE(giá trị, độ lệch[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 32 bit không dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeInt8(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 8 bit có dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeInt16LE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 16 bit có dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeInt16BE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 16 bit có dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với chức năng cụ thể và bù đắp có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeInt32LE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 32 bit có dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeInt32BE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là số nguyên 32 bit có dấu hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn. Giá trị mặc định là false.

buf.writeFloatLE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý rằng giá trị phải là một số float 32 bit hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Điều đó có nghĩa là giá trị có thể quá lớn đối với chức năng cụ thể và phần bù có thể vượt quá phần cuối của bộ đệm dẫn đến giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeFloatBE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý, giá trị phải là số nổi 32 bit hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và phần bù có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeDoubleLE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý, giá trị phải là giá trị kép 64 bit hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Điều đó có nghĩa là giá trị có thể quá lớn đối với chức năng cụ thể và offset có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.writeDoubleBE(value, offset[, noAssert])

Ghi một giá trị vào bộ đệm tại độ lệch được chỉ định với định dạng endian được chỉ định. Lưu ý, giá trị phải là giá trị kép 64 bit hợp lệ. Đặt noAssert thành true để bỏ qua xác thực value và offset. Nó có nghĩa là giá trị có thể quá lớn đối với một chức năng cụ thể và offset có thể nằm ngoài phần cuối của bộ đệm dẫn đến các giá trị bị giảm âm thầm. Nó không nên được sử dụng trừ khi bạn chắc chắn về tính đúng đắn của nó. Giá trị mặc định là false.

buf.fill(value[, offset][, end])

Điền vào bộ đệm với giá trị được chỉ định. Nếu offset (mặc định là 0) và end (mặc định là buf.length) không được đưa ra, nó sẽ lấp đầy toàn bộ bộ đệm.

Một số phương thức lớp khác

Phương thức và mô tả

Buffer.isEncoding(encoding)

Trả về true nếu mã hóa là đối số mã hóa hợp lệ, nếu không thì trả về false.

Buffer.isBuffer(obj)

Kiểm tra xem obj có phải là Buffer hay không.

Buffer.byteLength(string[, encoding])

Cung cấp độ dài byte thực tế của một chuỗi. mã hóa mặc định thành 'utf8'. Nó không giống với String.prototype.length, vì String.prototype.length trả về số ký tự trong một chuỗi.

Buffer.concat(list[, totalLength])

Trả về một bộ đệm là kết quả của việc nối tất cả các bộ đệm trong danh sách với nhau.

Buffer.compare(buf1, buf2)

Giống như buf1.compare (buf2). Hữu ích để sắp xếp một mảng bộ đệm.

» Tiếp: Các đối tượng global
« Trước: EventEmitter
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!