1.node單線程的理解
? ? 單線程指處理javascript的現(xiàn)成只有一個,但是I/O進(jìn)程有多個勺良。
2.Buffer
2.1 Buffer:Node在啟動進(jìn)程時就已加載,并掛載在全局骄噪,故可直接使用尚困。
2.2 正確的Buffer拼接:
const fs=require('fs');
const iconv=require('iconv-little'); // 純js庫,輕量链蕊、無需編譯和處理依賴環(huán)境直接使用
let chunks=[]; // 讀取數(shù)據(jù)段的存儲
let size=0; // 讀取數(shù)字的總字符長度
let res=fs.createReadStream('文件路徑',{highWaterMark:11}); // 每11個字符讀取一次數(shù)據(jù)
res.on('data',function(chunk){
chunks.push(chunk);
siaze+=chunk.length;
});
res.on('end',function(){
const buf=Buffer.concat(chunks,size); // 使用Buffer內(nèi)置的鏈接方法進(jìn)行拼接
const str=iconv.decode(buf,'utf8'); // 最終得到的字符結(jié)果事甜,字符串轉(zhuǎn)Buffer
})