欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js處理I/O數(shù)據(jù)之使用Buffer模塊緩沖數(shù)據(jù)

 更新時間:2022年07月06日 08:18:57   作者:社會主義接班人  
這篇文章介紹了Node.js使用Buffer模塊緩沖數(shù)據(jù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、前傳

在之前做web時也經(jīng)常用到j(luò)s對象轉(zhuǎn)json和json轉(zhuǎn)js對象.既然是Node.js處理I/O數(shù)據(jù),也把這個記下來。

Json轉(zhuǎn)Js對象:JSON.parse(jsonstr); //可以將json字符串轉(zhuǎn)換成json對象
Js對象轉(zhuǎn)Json:JSON.stringify(jsonobj); //可以將json對象轉(zhuǎn)換成json對符串

var jsonStr='{"name":"cuiyanwei","sex":"男","blog":"http://www.cnblogs.com/5ishare/"}';
//json轉(zhuǎn)js對象
var jsObj=JSON.parse(jsonStr);
console.log(jsObj);
//js對象轉(zhuǎn)Json
var newJsonStr=JSON.stringify(jsObj);
console.log(newJsonStr);

輸出結(jié)果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Buffer.js
{ name: 'cuiyanwei',
  sex: '男',
  blog: 'http://www.cnblogs.com/5ishare/' }
{"name":"cuiyanwei","sex":"男","blog":"http://www.cnblogs.com/5ishare/"}

Process finished with exit code 0

二、Buffer模塊緩沖數(shù)據(jù)

1.介紹

緩沖數(shù)據(jù)是由一系列大端或小端(這個要百度)格式字節(jié)組成,比文本數(shù)據(jù)占用較小空間.Buffer模塊是全局的,不需要使用require()來訪問它。

緩沖數(shù)據(jù)被存儲在類似數(shù)組的結(jié)構(gòu)中,但被存儲在正常V8堆內(nèi)存之外的原始內(nèi)存分配區(qū)中,因此不能調(diào)整大小.

2.使用

在介紹中說緩沖數(shù)據(jù)被存儲在類似數(shù)組的結(jié)構(gòu)中,基本和數(shù)組的操作差不多:創(chuàng)建對象、讀、寫、分割、拷貝、合并等。

1).創(chuàng)建

Buffer對象是在原始的內(nèi)存分配區(qū),在創(chuàng)建的時候確定大小。

//    1.字節(jié)大小 2.八位字節(jié)緩沖區(qū) 3.UTF8字符串
var  buffer256=new  Buffer(256);
var  bufferOctets=new Buffer([0x6f,0x63,0x74,0x65,0x74,0x73]);
var bufferUTF8=new  Buffer("Some UTF8 Text",'utf8');

2).寫(方法好多)

var buf256=new Buffer(25);
//fill(value,[offset],[end]) 將value寫到緩沖區(qū)從offset索引(默認(rèn)0)處開始,并在end索引處結(jié)束的每個字節(jié)(默認(rèn)buffer長度)
buf256.fill("1",0);
console.log(buf256.toString());
//wirte(string,[offset],[length],[encoding]) 使用encoding編碼從緩沖區(qū)offset索引開始寫入string中l(wèi)ength數(shù)量的字節(jié)
buf256.write("abc",1,2,'utf8');
console.log(buf256.toString());
buf256[6]=56;//將索引處的數(shù)據(jù)替換為指定的value值
console.log(buf256.toString());

輸出結(jié)果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Buffer.js
1111111111111111111111111
1ab1111111111111111111111
1ab1118111111111111111111

Process finished with exit code 0

3).讀(可逆,有寫就有讀)

var bufUTF8=new  Buffer("Some UTF8 Text",'utf8');
console.log(bufUTF8.toString());
//toString([encoding],[start],[end]) 使用encoding編碼,讀取從start(0)到end(尾)
console.log(bufUTF8.toString('utf8',0,4));
//返回緩沖區(qū)在指定offset字節(jié)的八進(jìn)制值
console.log(bufUTF8[8].toString(16));
//Node.js提供StringDecoder對象,有一個write(buffer)來進(jìn)行解碼,并使用指定的編碼寫入緩沖區(qū)數(shù)據(jù)
var StringDecoder=require('string_decoder').StringDecoder;
var decoder=new StringDecoder('utf8');
console.log(decoder.write(bufUTF8));

輸出結(jié)果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Buffer.js
Some UTF8 Text
Some
38
Some UTF8 Text

Process finished with exit code 0

4.Buffer長度

Buffer的長度是計算的字節(jié)長度,字符串的長度是字符的長度.

var s='UTF8 text \u00b6';
console.log(s.length);
console.log(Buffer.byteLength(s,'utf8'));
console.log(Buffer(s).length)

輸出結(jié)果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Buffer.js
11
12
12

Process finished with exit code 0

5.復(fù)制緩沖區(qū) 主要是copy方法

var bufSource=new  Buffer("1234567890",'utf8');
var bufTarget=new  Buffer("abcedfghijklmn",'utf8');
//copy.(targetBuffer, targetStart, sourceStart, sourceEnd)
//bufSource.copy(bufTarget,10,3,9); //abcedfghij4567
bufSource.copy(bufTarget,0,3,9);//456789ghijklmn
console.log(bufTarget.toString());

6.對緩沖區(qū)切片

這個有點類似字符串截取.slice([start],[end]),返回一個Buffer對象.如果編輯一個切片也會改變原來的緩沖區(qū)。

var  number=new Buffer('123456789');
console.log(number.toString());
var slice=number.slice(3.9);
console.log(slice.toString());
slice[0]='#'.charCodeAt(0);
slice[slice.length-1]='#'.charCodeAt(0);
console.log(slice.toString());
console.log(number.toString());

輸出結(jié)果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Buffer.js
123456789
456789
#5678#
123#5678#

Process finished with exit code 0

7.拼接緩沖區(qū)

這個有點類似C中的字符串拼接.concat(list,[totalLength])可以把多個Buffer對象拼接在一起形成一個新的緩沖區(qū).

var buff1 = new Buffer("123");
var buff2 = new Buffer("abc");
console.log(Buffer.concat([buff1, buff2,buff1]).toString());

輸出結(jié)果:

"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe buffer_concat.js
123abc123

Process finished with exit code 0

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nodejs讀取圖片返回給瀏覽器顯示

    nodejs讀取圖片返回給瀏覽器顯示

    這篇文章主要為大家詳細(xì)介紹了nodejs讀取圖片返回給瀏覽器顯示,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法

    npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法

    這篇文章主要給大家介紹了關(guān)于npm安裝的全局包/工具不能使用,不是內(nèi)部/外部命令的解決方法,文中通過圖文將解決的方法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Node.js中文件系統(tǒng)fs模塊的使用及常用接口

    Node.js中文件系統(tǒng)fs模塊的使用及常用接口

    fs是filesystem的縮寫,該模塊提供本地文件的讀寫能力,基本上是POSIX文件操作命令的簡單包裝。這篇文章主要介紹了Node.js中的文件系統(tǒng)fs模塊的使用,需要的朋友可以參考下
    2020-03-03
  • Node Sass依賴問題排查思路解析

    Node Sass依賴問題排查思路解析

    這篇文章主要為大家介紹了Node Sass依賴問題排查思路解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • window10系統(tǒng)下nvm詳細(xì)安裝步驟以及使用

    window10系統(tǒng)下nvm詳細(xì)安裝步驟以及使用

    nvm可以管理不同版本的node和npm,可以簡單操作node版本的切換、安裝、查看等,下面這篇文章主要給大家介紹了關(guān)于window10系統(tǒng)下nvm詳細(xì)安裝步驟以及使用的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • node.js中的fs.chown方法使用說明

    node.js中的fs.chown方法使用說明

    這篇文章主要介紹了node.js中的fs.chown方法使用說明,本文介紹了fs.chown的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • nodejs配置express服務(wù)器運行自動打開瀏覽器詳細(xì)步驟

    nodejs配置express服務(wù)器運行自動打開瀏覽器詳細(xì)步驟

    在nodejs中使用express來搭建框架可以說是非常的簡單方便,下面這篇文章主要給大家介紹了關(guān)于nodejs配置express服務(wù)器運行自動打開瀏覽器的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Node的文件系統(tǒng)你了解多少

    Node的文件系統(tǒng)你了解多少

    這篇文章主要為大家詳細(xì)介紹了Node的文件系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 從零學(xué)習(xí)node.js之模塊規(guī)范(一)

    從零學(xué)習(xí)node.js之模塊規(guī)范(一)

    Node.js是一個基于谷歌瀏覽器JavaScript執(zhí)行環(huán)境建立的一個平臺,讓JavaScript可以脫離客戶端瀏覽器運行,讓 JavaScript具有服務(wù)器語言的能力。從本文開始我們進(jìn)行學(xué)習(xí)node.js,這篇文章主要介紹的是node.js中模塊規(guī)范的相關(guān)資料,需要的朋友可以參考下。
    2017-02-02
  • node.js中的buffer.Buffer.isEncoding方法使用說明

    node.js中的buffer.Buffer.isEncoding方法使用說明

    這篇文章主要介紹了node.js中的buffer.Buffer.isEncoding方法使用說明,本文介紹了buffer.Buffer.isEncoding的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評論