写入流
const fs = require('fs');
// createWriteStream 写入流 一点一点往文件里写入
// 创建一个写入流
const ws = fs.createWriteStream('writeStream.txt', { flags: 'w', encoding: "utf-8" });
// 监听 文件打开
ws.on('open', (err) => {
console.log('文件打开了')
})
// 监听 文件关闭
ws.on('close', (err) => {
console.log('文件关闭了')
})
// 文件写入
ws.write('写入1', (err) => {
if(err) {
console.log(err)
} else {
console.log('写入1成功');
}
})
ws.write('写入2', (err) => {
if(err) {
console.log(err)
} else {
console.log('写入2成功');
}
})
ws.write('写入3', (err) => {
if(err) {
console.log(err)
} else {
console.log('写入3成功');
}
})
ws.write('写入4', (err) => {
if(err) {
console.log(err)
} else {
console.log('写入4成功');
}
})
// 文件写入关闭
ws.end(() => {
console.log('文件写入关闭');
})
writeStream.txt
写入1写入2写入3写入4
读取流
const fs = require('fs');
// 创建一个读取流
// const rw = fs.createReadStream('writeStream.txt', {flags: 'r', encoding: 'utf-8'})
const rw = fs.createReadStream('mp4.mp4', {flags: 'r'})
// 监听文件打开
rw.on('open', () => {
console.log('文件打开了');
})
// 监听文件读取完成了
rw.on('close', () => {
console.log('文件流读取完成了');
})
// 监听每一批的数据
rw.on('data', (data) => {
console.log('读取到的大小:' + data.length);
console.log('读取到的数据', data);
})
// 监听文件关闭
rw.on('end', ()=> {
console.log('文件关闭了');
})
文件打开了
读取到的大小:65536
读取到的数据 <Buffer bd a9 f4 7c 09 03 df c5 5c 12 86 0c 5e a1 7d 4a af 97 56 c6 4b 5f 82 41 1d 6f bb 60 ac 25 30 77 db e2 0e ef 0c e0 7a 10 f7 6f 70 a4 eb 6c 5d 79 ae a3 ... 65486 more bytes>
读取到的大小:65536
读取到的数据 <Buffer f3 2a ff 8f a9 92 ca 1c b1 33 48 39 98 b1 49 15 dc 60 2e 4c c6 f7 cf 12 d9 6c 25 9b 04 95 eb 00 df 91 a3 ed ed ba f1 b8 4f a1 50 9e e4 fd 15 06 b9 d6 ... 65486 more bytes>
读取到的大小:23368
读取到的数据 <Buffer 84 58 7b c1 e5 60 80 d1 ab 0f 6a 54 23 19 7f 9a 64 68 8e 9f 23 12 7b e6 77 e1 18 c3 1c a3 b1 24 c5 66 8b 60 35 b6 97 cb 28 61 53 bc 8f fa a1 b8 42 09 ... 23318 more bytes>
文件关闭了
文件流读取完成了
读取流与写入流结合
const fs = require('fs');
// 创建一个写入流
const rw = fs.createReadStream('a.mp4', {flags: 'r'})
// 创建一个读取流
const ws = fs.createWriteStream('b.mp4', { flags: 'w' })
rw.on('open', () => {
console.log('文件打开');
})
rw.on('end', () => {
console.log('读取文件完成');
ws.end()
})
rw.on('data', (data) => {
ws.write(data, (err) => {
if(err) console.log(err);
console.log('单批写入成功');
})
})
文件流管道
const fs = require('fs');
// 创建一个写入流
const rw = fs.createReadStream('a.mp4', {flags: 'r'})
// 创建一个读取流
const ws = fs.createWriteStream('b.mp4', { flags: 'w' })
rw.on('open', () => {
console.log('文件打开');
})
rw.on('end', () => {
console.log('读取文件完成');
ws.end()
})
rw.pipe(ws)
网友评论