Javascript buffer是Javascript的一個重要特性,它可以用來處理二進制數據,比如圖片、聲音、視頻和文件等等。
在Javascript中,普通的字符串是以Unicode編碼的,每個字符占據2個字節,而Buffer是以字節為單位的。通過Buffer,我們可以將字符串轉換成二進制數據,并進行二進制相關的操作。例如,我們可以使用Buffer來讀取二進制數據流,將其寫入文件或者發送到網絡。
下面我們來看一下Buffer的創建方式:
const buf1 = Buffer.alloc(10); // 創建一個長度為 10 的 Buffer 實例 const buf2 = Buffer.from([1, 2, 3]); // 創建一個包含 [0x01, 0x02, 0x03] 的 Buffer 實例 const buf3 = Buffer.from('hello world', 'ascii'); // 創建一個包含 'hello world' 的 Buffer 實例在上面的代碼中,Buffer.alloc()方法可以用來創建一個指定長度的Buffer實例,Buffer.from()方法可以用來將字符串或者數組轉換為Buffer實例。 下面我們來看一下如何在Buffer中讀取和寫入數據:
const buf = Buffer.alloc(16); buf.write('hello', 0, 'utf8'); // 向buf寫入utf8編碼的'hello',從偏移量0開始 console.log(buf.toString('hex')); // 68656c6c6f000000000000000000000000 console.log(buf.toString('utf8')); // hello buf.writeInt32LE(123456, 6); // 向buf從偏移量6開始寫入一個32位整數 console.log(buf.toString('hex')); // 68656c6c6f00007b000000000000000000 console.log(buf.readInt32LE(6)); // 123456在上面的代碼中,buf.write()方法可以將字符串寫入buf中,偏移量是0,編碼格式是utf8。buf.toString()方法可以將buf轉換成字符串,編碼格式是hex或者utf8。 buf.writeInt32LE()方法可以向buf中寫入一個32位整數,偏移量是6,不同的是,它是以小端序的方式將整數寫入到buf中的。buf.readInt32LE()方法可以讀取buf中偏移量為6的位置上的32位整數,以小端序的方式讀取。 以上就是使用Buffer的基本操作,它能夠讓我們在Javascript中處理二進制數據變得輕松愉快。
上一篇php array初始化
下一篇php array取值