NodeJS 基礎(chǔ)教程

NodeJS Express.js

NodeJS 緩沖&URL

NodeJS MySql

NodeJS MongoDB

NodeJS 文件(FS)

NodeJS 其他

Node.js Buffer(緩沖區(qū)) – 創(chuàng)建,寫(xiě)入和讀取

Node.js緩沖區(qū)

Node.js緩沖區(qū)– Node.js緩沖區(qū)是一個(gè)類,可幫助處理和使用八位位組流。在處理TCP數(shù)據(jù)流和文件系統(tǒng)操作時(shí),通常會(huì)出現(xiàn)八位字節(jié)流。

分配給緩沖區(qū)的原始內(nèi)存在Node.js V8堆內(nèi)存之外。

在本教程中,我們將學(xué)習(xí)如何

  • 創(chuàng)建緩沖區(qū)

  • 將數(shù)據(jù)寫(xiě)入緩沖區(qū)

  • 從緩沖區(qū)讀取數(shù)據(jù)。

Node.js –創(chuàng)建緩沖區(qū)

在Node.js中創(chuàng)建緩沖區(qū)的方法有很多種。我們將一個(gè)一個(gè)地研究它們。

指定長(zhǎng)度的緩沖區(qū)

要?jiǎng)?chuàng)建指定長(zhǎng)度的緩沖區(qū),請(qǐng)使用Buffer。allocUnsafe(int)方法。

語(yǔ)法

Buffer.allocUnsafe(bufferLength);
const buf1 = Buffer.allocUnsafe(10);

bufferLength是一個(gè)整數(shù),指定要?jiǎng)?chuàng)建的緩沖區(qū)的長(zhǎng)度。

創(chuàng)建的緩沖區(qū)未初始化,這意味著它可以包含垃圾值。您可以使用fill()或write()方法覆蓋垃圾值。

指定長(zhǎng)度的零填充緩沖區(qū)

若要?jiǎng)?chuàng)建指定長(zhǎng)度的零填充緩沖區(qū),請(qǐng)使用Buffer.alloc(int)方法。
語(yǔ)法

Buffer.alloc(bufferLength);
const buf1 = Buffer.alloc(10);

 bufferLength是一個(gè)整數(shù),指定要?jiǎng)?chuàng)建的緩沖區(qū)的長(zhǎng)度。緩沖區(qū)包含用零填充的所有內(nèi)存位置。

Buffer.alloc()比 Buffer.allocUnsafe()慢。

指定長(zhǎng)度的緩沖區(qū),填充有指定值

若要?jiǎng)?chuàng)建指定長(zhǎng)度并填充有指定值的緩沖區(qū),請(qǐng)使用Buffer.alloc(int,int)方法。
語(yǔ)法
Buffer.alloc(bufferLength, value);
 

  const buf1 = Buffer.allocUnsafe(10, 3);

 bufferLength是一個(gè)整數(shù),指定要?jiǎng)?chuàng)建的緩沖區(qū)的長(zhǎng)度。緩沖區(qū)包含用value填充的所有內(nèi)存位置。

Node.js –寫(xiě)入緩沖區(qū)

Buffer類有很多方法可以將不同格式的數(shù)據(jù)寫(xiě)入緩沖區(qū)。在本節(jié)中,我們將學(xué)習(xí)編寫(xiě)一個(gè)字符串以緩沖。
若要將字符串寫(xiě)入緩沖區(qū),請(qǐng)使用Buffer.write方法。
語(yǔ)法

Buffer.write(string[, offset[, length]][, encoding]);
  const buf1 = Buffer.allocUnsafe(100);
 
  const len = buf1.write('welcomeuser',2,5,'utf8');

從offset開(kāi)始的字符串,按長(zhǎng)度提供的字符數(shù)將以指定的編碼格式寫(xiě)入緩沖區(qū)。

write()方法返回寫(xiě)入緩沖區(qū)的字節(jié)數(shù)。

Node.js – 從緩沖區(qū)讀取

要從緩沖區(qū)讀取字節(jié),請(qǐng)使用Buffer.values方法。
語(yǔ)法

Buffer.values();

創(chuàng)建并返回buf1值(字節(jié))的迭代器。在for..of語(yǔ)句中使用Buffer時(shí),將自動(dòng)調(diào)用此函數(shù)。

  const buf1 = Buffer.allocUnsafe(11);
 
  const len = buf1.write('welcomeuser');
 
  for(const byt of buf1.values()){
    console.log(byt);
  }

輸出結(jié)果

$ node read-buffer.js  
119
101
108
99
111
109
101
117
115
101
114

結(jié)論:

在本Node.js教程– Node.js緩沖區(qū)中,我們學(xué)習(xí)了如何在Node.js中創(chuàng)建,寫(xiě)入和讀取緩沖區(qū)。在接下來(lái)的教程中,我們將學(xué)習(xí)一些關(guān)于緩沖區(qū)的有趣操作。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清