fs模块
fs模块是文件操作模块。fs是 FileSystem的简写。它用来对文件,文件夹进行操作。
// 引入模块,可以使用var、let,但是建议使用const,因为不希望它被改变
const fs = require('fs');
fs模块中操作文件(或者文件夹)的方法,大多都提供了两种选择:
- 同步版本
- 异步版本
文件内容读取
异步格式 - readFile
fs.readFile('文件路径', [选项], (err, data) => {
if (err) throw err;
console.log(data);
});
// 参数1:文件路径。 相对路径和绝对路径均可。
// 参数2:配置项,可选参数。主要用来配置字符集。一般可设置为'utf8',
// 如果不设置该参数,文件内容会以二进制形式返回。
// 参数3: 文件读取完成后触发的回调函数。有两个参数 --- err 和 data
// 读取成功:
// err: null,
// data: 文件内容,如果不设置参数2,则返回二进制数据。可以使用 toString() 方法将二进制数据
// 转为正常字符串
// 读取失败:
// err: 错误对象,data: undefined
示例:
const fs = require("fs")
fs.readFile('文件路径', "utf8", (err, data) => {
if (err) throw err;
console.log(data);
});
同步格式 - readFileSync
与异步格式不同在于:
- api的名字后面有Sync
- 不是通过回调函数来获取值,而是像一个普通的函数调用一样,直接获取返回值。
const fs = require("fs")
let rs = fs.readFileSync('文件路径',"utf8");
console.log(rs)
文件写入
覆盖写入 - writeFile
向指定文件中写入字符串(覆盖写入), 如果没有该文件则尝试创建该文件。它会把文件中的内容全部删除,再填入新的内容。
const fs = require("fs")
fs.writeFile(var1, var2, var3, var4)
// 参数1: 要写入的文件路径 --- 相对路径和绝对路径均可,推荐使用绝对路径
// 参数2: 要写入文件的字符串
// 参数3: 配置项,设置写入的字符集,默认utf-8
// 参数4: 写入完成后触发的回调函数,有一个参数 --- err (错误对象)
示例:
const fs = require('fs')
fs.writeFile('./a.txt', 'hello world niahi \n asfsdf', err => {
if (err) {
console.info(err)
throw err
}
})
文件追加 - appendFile
向指定文件中写入字符串(追加写入), 如果没有该文件则尝试创建该文件。
const fs = require('fs')
fs.appendFile(var1, var2, var3, var4);
// 参数1: 要写入的文件路径 --- 相对路径和绝对路径均可,推荐使用绝对路径
// 参数2: 要写入文件的字符串
// 参数3: 配置项,设置写入的字符集,默认utf-8
// 参数4: 写入完成后触发的回调函数,有一个参数 --- err (错误对象)
示例:
const fs = require('fs')
fs.appendFile('./a.txt', '\n 为天地立命', err => {
if (err) {
console.info(err)
throw err
}
})
fs模块中的常用方法
API | 作用 | 备注 |
---|---|---|
fs.access(path, callback) | 判断路径是否存在 | |
fs.appendFile(file, data, callback) | 向文件中追加内容 | |
fs.copyFile(src, callback) | 复制文件 | |
fs.mkdir(path, callback) | 创建目录 | |
fs.readDir(path, callback) | 读取目录列表 | |
fs.rename(oldPath, newPath, callback) | 重命名文件/目录 | |
fs.rmdir(path, callback) | 删除目录 | 只能删除空目录 |
fs.stat(path, callback) | 获取文件/目录信息 | |
fs.unlink(path, callback) | 删除文件 | |
fs.watch(filename[, options][, listener]) | 监视文件/目录 | |
fs.watchFile(filename[, options], listener) | 监视文件 | |
fs.existsSync(absolutePath) | 判断路径是否存在 |