外观
外观
怡然
1128字约4分钟
2025-06-13
file system
,用于读取、写入、删除文件以及执行其他文件系统操作。fs.writeFile
写入文件fs.writeFile
为写入文件的操作,该操作是异步的。// 1.导入fs模块
const fs = require('fs')
// 2.写入文件,使用writeFile
fs.writeFile('./demo.txt','测试写入内容',err=>{
// writeFile三个参数的含义:
// 第一个是写入的文件名,若无此文件,则自动创建;
// 第二个是写入的内容;
// 第三个是错误回调,若有报错,则err为报错的内容,若无报错,则为null
if(err){
console.log('写入失败')
return
}
console.log('写入成功')
})
fs.writeFileSync
为同步写入的操作fs.writeFileSync('./demo.txt','test')
// 捕获错误可以用try/catch
try {
fs.writeFileSync('example.txt', 'Hello, World!');
console.log('File written successfully');
} catch (err) {
console.error('Error writing file:', err);
}
fs.appendFile
和fs.appendFileSync
分别为两个文件追加写入的异步和同步方法。fs.appendFile('./demo.txt','\r\n这是追加的内容',err=>{ //\r\n为换行
if(err){
console.log('追加失败')
return
}
console.log('追加成功')
})
fs.writeFile
,在参数配置时使用a
可达到追加内容的目的fs.writeFile('./demo.txt', '\r\n使用write追加内容', { flag: 'a' }, err => {
// flag为一个标识符,默认为w,只写入;a表示追加;r表示读取
if (err) {
console.log('写入失败')
return
}
console.log('写入成功')
})
fs.createWriteStream
方法,适用于写入内容较多或频繁写入的场景。let ws=fs.createWriteStream('./蜀道难.txt')
ws.write('噫吁嚱,危乎高哉\r\n');
ws.write('蜀道之难,难于上青天\r\n');
ws.write('蚕丛及鱼凫,开国何茫然\r\n');
ws.write('尔来四万八千岁,不与秦塞通人烟\r\n');
ws.close()
fs.readFile
异步读取// fs.readFile(path,[options],callback) 三个参数分别为文件路径,配置项和回调函数
fs.readFile('./蜀道难.txt',(err,data)=>{
// err为错误信息,data为执行成功时读取到的文件信息,
// data是一个buffer对象,若要查看,使用toString()方法
if(err){
console.log('读取失败')
return
}
console.log(data.toString())
})
fs.readFileSync
同步读取let data = fs.readFileSync('./蜀道难.txt')
console.log(data.toString())
fs.createReadStream
流式读取let rs = fs.createReadStream('../与夏令.wav')
// 绑定data事件
rs.on('data',chunk=>{
console.log(chunk) // 输出很多buffer
console.log(chunk.length) // 很多的65536,即64kb,表明每一个chunk的大小是64KB
})
// 关闭读取事件
rs.on('end',()=>{
console.log('读取完成')
})
git log
readFile
和writeFile
或其同步的方法const fs=require('fs')
const process=require('process') // 提供了有关当前 Node.js 进程的信息和控制方法
let data = fs.readFileSync('../与夏令.wav')
fs.writeFileSync('../与夏令-2.wav',data)
console.log(process.memoryUsage()) // 可以查看当前进程消耗的内存大小
const rs=fs.createReadStream('../与夏令.wav')
const ws=fs.createWriteStream('../与夏令.wav')
rs.on('data',chunk=>{
ws.write(chunk)
})
rs.on('end',()=>{
console.log(process.memoryUsage())
})
ws.cloes()
pipe()
,较为少用const rs=fs.createReadStream('../与夏令.wav')
const ws=fs.createWriteStream('../与夏令.wav')
rs.pipe(ws)
fs.rename
和fs.renameSync()
fs.rename('./demo.txt','demo-1.txt',err=>{ // 第一个参数是源文件名,第二个参数是重命名
if(err){
console.log('重命名失败')
return
}
console.log('重命名成功')
})
fs.rename('./蜀道难.txt','./资料/蜀道难.txt',err=>{
if(err){
console.log('重命名失败',err)
return
}
console.log('重命名成功')
})