流式檔案讀取
阿新 • • 發佈:2022-03-05
流式檔案讀取適用於一些比較大的檔案,可以分多次將檔案讀取到記憶體中
rs.pipe() 將可讀流中的內容直接輸出到可寫流中
var fs = require('fs') //建立一個可讀流 var rs = fs.createReadStream('C:/Users/Believer/Pictures/Saved Pictures/座頭鯨.png') //建立一個可寫流 var ws = fs.createWriteStream('C:/Users/Believer/Desktop/photo.png') //監聽流的開啟和關閉 rs.once('open', function(){ console.log('可讀流打開了') }) rs.once('close', function(){ console.log('可讀流關閉了') }) ws.once('open', function(){ console.log('可寫流打開了') }) ws.once('close', function(){ console.log('可寫流關閉了') }) //pipe()可以將可讀流中的內容直接輸出到可寫流中 rs.pipe(ws)
************************************************************************
var fs = require('fs') //建立一個可讀流 var rs = fs.createReadStream('C:/Users/Believer/Pictures/Saved Pictures/座頭鯨.png') //建立一個可寫流 var ws = fs.createWriteStream('C:/Users/Believer/Desktop/photo.png') //監聽流的開啟和關閉 rs.once('open', function(){ console.log('可讀流打開了') }) rs.once('close', function(){ console.log('可讀流關閉了') //資料讀取完畢,關閉可以寫流 ws.end() }) ws.once('open', function(){ console.log('可寫流打開了') }) ws.once('close', function(){ console.log('可寫流關閉了') }) //如果要讀取一個可讀流中的資料,必須要為可讀流繫結一個data事件,data事件繫結完畢,它會自動開始讀取資料 rs.on('data', function(data){ //此處就不能用once了 //console.log(data) //形參data即為可讀流讀取到的資料,當資料足夠大,就會分次讀取 //將讀取到的資料寫入到可寫流中 ws.write(data) })