fs文件系统模块
fs模块是由Node.js官方提供的、用来操作文件的模块。它提供了一些列的方法和属性,用来满足用户对文件操作的需求,包括文件目录的创建、删除、查询以及文件内容的读取和写入等。
fs的基本操作
1.文件内容的读取
- 同步方法readFileSync()
readFileSync()可传入两个参数,第一个参数为要读取文件的路径;第二个参数为 options,默认值为 null,其中有 encoding(编码,默认为 null)和 flag(标识位,默认为 r),也可直接传入 encoding。
返回值为文件的内容,如果没有 encoding,返回的文件内容为 Buffer,如果有按照传入的编码解析。
//使用前需导入模块
const fs = require('fs')
let data = fs.readFileSync("./1.txt", "utf8");
console.log(data);
- 异步方法readFile()
readFile()可传入三个参数,前两个参数与readFileSync()一致,第三个参数为一个回调函数,用于在文件读取成功后执行。
回调函数function()有两个参数,错误信息err和返回数据data
const fs = require('fs')
//读取文件 (文件路径,编码格式(可省略),回调函数)
fs.readFile('./1.txt','utf8',function(err,data) {
if(err) {
return console.log('文件读取失败' + err.message);
}
console.log(data);
})
2.文件内容的写入
- 同步方法writeFileSync()
writeFileSync()有三个参数:第一个参数为写入文件的路径;第二个参数为写入的数据;第三个参数为 options,默认值为 null,其中有 encoding(编码,默认为 utf8)、 flag(标识位,默认为 w)和 mode(权限位,默认为 0o666),也可直接传入 encoding。
const fs = require('fs')
let data = fs.writeFileSync("./1.txt", "Hello World!");
- 异步方法writeFile()
writeFile()在writeFileSync()的基础上,还多一个回调函数。
fs.writeFile('./1.txt','你好!',function(err) {
if(err) {
return console.log('文件写入失败' + err.message);
}
console.log('文件写入成功');
})
文件写入操作,在原文件有内容的情况下,新写入的内容会覆盖原有的内容
3.文件内容的追加
- 同步方法appendFileSync()
- 异步方法appendFile()
参数说明与操作同上,结果不同,新写入的内容不会覆盖文件的原有内容,而是追加在其后