上篇講解了關於node的文件操作,但爲什麼還有文件的流操作呢
搞計算機的都知道 計算機所有的東西最終都會轉換成二進制文件流的形式
所以一般在很大的文件進行操作的時候,使用二進制流的形式 進行文件操作無非會大大縮減文件操作的消耗時間 小文件操作就不需要
舉例子:一般幾百兆的壓縮包等等
流的操作 一般都是大文件
// 文件流 寫入文件
var str="";
var data="從數據庫中讀取數據,然後寫入到文件中\n";
for(var i=0;i<500;i++){
str+=data;
}
var writeStream=fs.createWriteStream('./data/output.txt');
writeStream.write(str);
writeStream.end();// 文件寫入結束
// 監聽文件寫入完成的事件
writeStream.on('finish',()=>{
console.log('寫入完成!');
})
// 文件流 讀取文件
var readStream=fs.createReadStream('./data/input.txt');// 創建讀取流
var count=0;
var str='';
readStream.on('data',(data)=>{
str+=data;
count++;
})
readStream.on('end',()=>{
console.log(str,count);
})
readStream.on('error',(err)=>{
console.log(err);
})
// 管道流 用於複製大文件
var readStream=fs.createReadStream('./imgs/km.png');
var writeStream=fs.createWriteStream('./data/1.png');
readStream.pipe(writeStream);