node_fs模块_读写文件

读取方法:

const fs = require("fs");
// 异步读取
fs.readFile('./text.txt', (err, data) => {
    console.log(data.toString())
})
// 同步读取
const data = fs.readFileSync('./text.txt')
console.log(data.toString())

// 流式读取
const rs = fs.createReadStream('./text.txt');
rs.on('data', chunk => {
    console.log(chunk.length);
})

写入方法:

const fs = require('fs');
// 异步写入
fs.writeFile('./text.txt', '马上要来了', err => { console.log(err)})
// 同步写入
fs.writeFileSync('./text.txt', `${new Date()}`)
// 异步追加写入
fs.appendFile('./text.txt', '窗前明月光', err => {console.log(err)})
// 同步追加写入
fs.appendFileSync('./text.txt', '疑是地上霜', err => {console.log(err)})
// 流式写入
const wsfile = fs.createWriteStream('./text.txt');
wsfile.write('窗前明月光\r\n');
wsfile.write('疑是地上霜\r\n');
wsfile.write('举头望明月\r\n');
wsfile.write('低头思故乡\r\n');
wsfile.end();

读写实例:

const fs = require("fs");

// 1.同步读写, 小文件可能使用这种方式, 大文件会造成内存占用量变大
const data = fs.readFileSync('./东屋/逮虾户.mp3')
fs.writeFileSync('./东屋/逮虾户-2.mp3', data)

// 2.流式读写, 读写的实例对象上分别挂载多个方法, 并不是只有on
const rs = fs.createReadStream('./东屋/逮虾户.mp3');
const ws = fs.createWriteStream('./东屋/逮虾户-1.mp3');

rs.on('data', data=>{
    ws.write(data)
});
rs.on('end', () => {
    console.log(process.memoryUsage())  // 查看内存占用 rss除以1024得到kb再除以1024等于兆
})

// 3.读写法rs.pipe(管道)
rs.pipe(ws) // 读取流完事通过管道交给写入流

 

 
posted @ 2023-04-04 10:14  不知码  阅读(23)  评论(0)    收藏  举报