文件追加
Node.js中,在使用文件写人方法时,如果文件名存在,就会覆盖同名文件的内容,那么如何向文件中追加内容? 为此,fs模块中提供了追加文件内容的方法。追加文件内容的异步函数语法如下:
appendFile(file, data[, options], callback);
在上述语法中,各参数与文件写入fs.writeFile()基本相同,如下表所示。
参数 | 说明 |
---|---|
file | 文件名或文件描述符 |
data | 要写入文件的数据,可以是String(字符串)或Buffer(流)对象 |
options | 该参数是一个对象,包含{encoding,mode,flag}。默认编码为utf-8,模式为0o666,flag为’a’ |
callback | 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回 |
在上表中要注意options 的flag 为’a’。下面通过一个案例来演示如何向文件追加内容。创建文件demo4-3js,在该文件中添加如下代码。
/**
*向文件追加内容
*/
var fs=require('fs');
//定义需要追加的数据
var data='欢迎你';
//调用文件追加函数
fs.appendFile('E:/Liu/node.js学习/a.txt',data,function(err) {
if (err) {
//出错的情况下,回调函数中的代码就不要继续往后执行了
//所以可以使用return的方式,阻止代码继续执行
return console.log('文件追加失败!');
}
//希望在文件追加成功之后做一些事情
console.log('文件追加成功!');
});
在上述代码中,第6行定义需要追加的数据,第8行调用appendFile()函数,在第二个参数传入要写入文件的数据,第12行如果出错就会使用return 方式阻止代码继续执行,追加成功之后,可以继续其他操作。
打开终端,在终端中输入node demo4-3.js
,执行demo4-3.js,执行结果如图所示。
从上图中可以看出文件追加成功,在计算机E盘对应文件夹中找到a.txt文件,打开文件后可以看到追加内容。