fs 模块
fs 全名为 File System 中文名为文件系统,该模块可以进行文件操作,是 Node.js 内置模块,需要使用 require
引入。
fs 模块引入:
const fs = require('fs')
引入的 fs 为 Node.js 的内置对象,所以一般都是使用常量接受。
读取文件,需要使用 readFile()
方法,该方法语法结构如下:
fs.readFile(path, encoding, callback)
参数说明:
- path:文件路径
- encoding:编码格式
- callback:回调函数,接受三个参数
- err:错误信息
- doc:文件内容
如下代码所示:
const fs = require('fs')
结果:
hello world
向文件中写入内容需要使用 writeFile
方法,具体参见上面给出的 API 文档。
如下代码所示:
const fs = require('fs')
fs.writeFile('./target.txt','你好 node', 'utf8', err=>{
if (err == null){}
console.log('写入完毕')
})
运行代码之后 target.txt 文件中的内容变为 “你好 node”
如果想要在文件中添加内容可以使用 appendFile
方法,如下代码所示:
const fs = require('fs')
fs.appendFile('./target.txt','\n这是追加的内容', 'utf8', err=>{
if (err==null){}
console.log('ok')
})
path 模块
拼接路径
path 模块中的 join
方法可以根据当前操作系统的分隔符,将形参中的路径进行拼接。
如下代码所示:
const path = require('path')
let file_path = path.join('hello','world','target')
console.log(file_path)
结果:
hello\world\target
获取绝对路径
path 模块的 __dirname
方法可以获取当前文件在计算机中的绝对路径,如下代码所示:
const path = require('path')
let path_name = path.join(__dirname);
console.log(path_name)
结果:
E:\Git_Code\ricardo\Node.js\代码
如果在 Node 的 Cli 模式下运行,可能会出现相对路径不对的情况,所以需要使用 __dirname
来获取绝对路径,然后使用 join
进行拼接。
如下代码所示:
const fs = require('fs')
const path = require('path')
let path_name = path.join(__dirname,'target.txt');
// 读取 taregt 文件
console.log(fs.readFile(path_name, 'utf8', (err, doc)=>{
console.log(doc)
}))
结果:
你好 node
这是追加的内容
上面代码,无论代码文件和 target.txt 文件在那个磁盘下,无论 node 目录是哪里,只要这两个目录在一个文件夹下,都可以执行。