1.简介
实现与硬盘的交互,文件创建,删除与重命名,移动以及文件内容的写入与读取以及文件夹相关操作。
2.fs 模块的常见用法
2.1fs.writeFile() 方法用于异步地将数据写入文件。
新建一个文件xxx.txt 写入内容 哟哟 实际应用场景, 希望记录用户每一次请求的时间,并且把它记录在一个文件当中异步实现。
// 导入fs模块
const fs =require('fs')
// writeFile异步进行写入
fs.writeFile('./yoyo.txt','哟哟',err=>{
// err写入失败:错误对象 写入成功:null
if(err){
console.log('写入失败');
return
}
console.log('写入成功');
})
fs.writeFile() 方法用于异步地将数据写入文件。
file (string): 要写入的文件的路径或文件描述符。
data (string, Buffer, TypedArray, DataView): 要写入的数据。可以是字符串、Buffer 对象、TypedArray 或 DataView。
options (Object | string): 可选参数,可以是一个包含编码、模式和标志的对象,或者是一个字符串表示编码。
如果是对象,则可以包含以下属性:
encoding (string): 指定要使用的编码,默认为 'utf8'。
mode (number): 设置文件的模式,默认为 0o666。
flag (string): 指定打开文件时要使用的标志,默认为 'w'。
如果是字符串,则表示编码,例如 'utf8'。
callback (Function): 写入操作完成后调用的回调函数。该函数会接收一个可能出现的错误作为第一个参数,如果没有错误则为空。
同步实现
fs.writeFileSync('./one.txt','同步执行不含回调函数')
2.2文件追加appendFile appendFileSync
// 异步appendFile
// 导入fs模块
const fs =require('fs')
fs.appendFile('./yoyo.txt','切克闹',err=>{
if(err) throw err;
console.log('追加成功');
})
// 同步appendFileSync
// fs.appendFileSync('./yoyo.txt','\n同步appendFileSync追加')
2.3实现文件流式 createWriteStream
适用于需要处理大型文件或者需要逐块地从数据源读取并写入到目标文件的情况,写入文件的场景:1.下载文件 2.安装软件 3.保存程序日志比如git 4.编辑器保存文件 5.屏幕的录制 比如保存文件 6当需要持久化保存数据的时候,文件写入。
// 创建可写入流 fs.createWriteStream
const fs=require('fs')
let all=fs.createWriteStream('./flow.txt');
all.write('流写入1\r\n');
all.write('流写入2\r\n');
all.write('流写入3\r\n');
all.write('流写入4\r\n');
all.end();//关闭通道
// 循环模拟数据源
// 创建可写流
const writeStream = fs.createWriteStream('output.txt', { encoding: 'utf8' });
// 模拟数据源,例如从数据库或其他来源获取数据
const data = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.';
// 将数据写入流
writeStream.write(data, 'utf8', () => {
console.log('Data has been written to the file');
});
// 结束写入操作
writeStream.end(() => {
console.log('Write stream has been closed');
});
3.总结
这些只是 fs 模块中一小部分常见用法,该模块还提供了许多其他方法,如重命名文件、读取目录内容、监视文件变化等。Node.js 中的 fs 模块为对文件系统进行各种操作提供了强大而灵活的工具。