1. 程式人生 > 其它 >流式檔案讀取

流式檔案讀取

流式檔案讀取適用於一些比較大的檔案,可以分多次將檔案讀取到記憶體中
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)
})