fs (file 文件 ,system 系统)模块就是文件系统操作模块,属于 Node.js 中的核心模块 , 用于与文件进行交互。
读写文件
读取文件内容
fs.readFile(file[,encoding][,callback(err,data)]) 异步方式读取文件内容。
fs
通过 require() 方法导入的 fs 模块
参数:
-
file
需要读取的文件 -
encoding
文件的字符编码,以何种编码解析数据(默认值为 null) -
callback
回调函数,用于接收文件内容。// fs 模块不是全局模块,使用时需要加载 fs 核心模块 var fs = require('fs'); // 读取指定文件中的内容 fs.readFile('./data/hello.txt',function(error,data){ console.log(error); // 未设置默认字符集时,输出的 data 内容为二进制数据流(返回原始的 buffer) console.log(data); // 通过 Buffer 对象的 toString() 方法将 data 解码成字符串(默认的字符编码为 utf8) console.log(data.toString()); });
注意:
- 读取到文件时 err 为 null ,data 为读取到的数据;否则 err 为 错误对象,data 为 undefined;为了代码的可读性更强最好将
encoding
设为utf8
。
- 使用
fs
模块操作文件时,fs
模块方法中的路径如果是相对路径,这相对路径是相对于执行 node 命令的路径,当执行 node 命令的路径改变时,操作文件会失败;所以最好使用__dirname
拼接为绝对路径。
- 读取到文件时 err 为 null ,data 为读取到的数据;否则 err 为 错误对象,data 为 undefined;为了代码的可读性更强最好将
向文件写入内容
fs.writeFile(file,data[,options],callback) 异步方式将数据写入文件,若文件不存在将会在指定目录下(目录必须存在)创建文件并写入数据,若文件存在则会被覆盖。
参数:
-
file
写入数据的文件路径 -
data
需要写入的数据(可以是字符串也可以是 buffer) -
potions
对象(可设置字符编码) -
callback
回调函数,只包含错误信息参数(err)。var fs = require('fs'); // 将数据写入指定文件中 fs.writeFile('./data/hello.txt','通过 fs.writeFile()写入数据',function (error) { console.log(error); });
注意: 数据写入成功时 error 为 null 否则说明数据写入失败;当 data 是一个 buffer 时 encoding 会被忽略。
向文件追加内容
fs.appendFile(path, data[, options], callback):该方法发会异步地将数据追加到指定文件中,不会覆盖原来的内容,如果文件不存在则会创建该文件。
参数:
-
path
文件路径 -
data
要追加的内容 -
options
该参数是一个对象可以指定字符编码,默认为 urf8;该参数一般用不到 -
callback
追加完成后(不一定成功)执行的回调函数,该回调函数只有一个参数就是错误对象 errorvar fs = require(