Node.js中“文件系统”模块的fs.promises.appendFile()方法用于与用户计算机的硬盘进行交互。 appendFile()方法用于将新数据附加到现有文件中,或者如果该文件不存在,则首先创建文件,然后将给定数据附加到该文件中。 fs.promises.appendFile()方法返回已解决或拒绝的承诺,因此避免了fs.appendFile()方法中可能发生的回调嵌套或回调地狱问题。
用法:
fs.promises.appendFile( path, data, options )
参数:此方法接受三个参数路径,数据和选项。选项是可选参数。
- path:它是一个字符串,缓冲区或URL,它指定要在其中添加给定数据的目标文件的路径。
- data:它是一个字符串或缓冲区,将附加到目标文件。
- options:这是一个可选参数,它会以某种方式影响输出,因此我们是否将其提供给函数调用。
- encoding:它指定了编码技术,默认值为“ UTF8”。
- mode:它指定文件模式。文件模式使我们可以创建,读取,写入或修改文件。默认值为“ 0o666”。
- flag:它指定附加到文件时使用的标志。默认值为‘a’。
返回值:它返回已解决或已拒绝的承诺。如果成功将数据附加到目标文件,则将解决诺言;否则,如果发生任何错误(example-specified文件没有写权限等),将被错误对象拒绝。
范例1:
// Importing File System module
const fs = require('fs')
// The readFile() method reads the file
// and returns buffer form of the data
fs.promises.readFile('./test.txt')
.then(buff => {
// File content before append
const oldContent = buff.toString()
console.log(`Before Append:${oldContent}\n`)
// Append operation
return fs.promises.appendFile('./test.txt',
'\nHey, I am newly added..!!')
})
.then(() => {
// Getting new file content
return fs.promises.readFile('./test.txt')
})
.then(buff => {
// File content after append
const newContent = buff.toString()
console.log(`After Append:${newContent}\n`)
})
.catch(err => {
console.log(err)
})
我们可以使用async-await关键字实现相同的函数。
// Importing File System module
const fs = require('fs')
const appendDataToFile = async (path, data) => {
// The readFile() method reads the file
// and returns buffer form of the data
const oldBuffer = await fs.promises.readFile(path)
// File content before append
const oldContent = oldBuffer.toString()
// Append operation
await fs.promises.appendFile(path, data)
const newBuffer = await fs.promises.readFile(path)
// File content after append
const newContent = newBuffer.toString()
console.log(`Before Append:${oldContent}\n`)
console.log(`After Append:${newContent}`)
}
appendDataToFile('./test.txt',
'\nHey, I am newly added..!!')
.catch(err => {
console.log(err)
})
输出:
范例2:文件名的给定路径不存在时。
// Importing File System module
const fs = require('fs')
// Append operation
// If given file does not exist
// it will be created first then
// data is appended
fs.promises.appendFile('./test.txt',
'Please add me to the test file..!!')
.then(() => {
// readFile() method reads the file
// and returns buffer form of the data
return fs.promises.readFile('./test.txt')
})
.then(buff => {
// Appended data
const content = buff.toString()
console.log(`Content:${content}`)
})
.catch(err => {
console.log(err)
})
使用async-await关键字实现相同的函数。
// Importing File System module
const fs = require('fs')
const appendDataToFile = async (path, data) => {
// Append operation
// If given file does not exist
// It will created first then
// data is appended
await fs.promises.appendFile(path, data)
// readFile() method reads the file
// and returns buffer form of the data
const buff = await fs.promises.readFile(path)
// File content after append
const content = buff.toString()
console.log(`Content:${content}`)
}
appendDataToFile('./test.txt',
'Please add me to the test file..!!')
.catch(err => {
console.log(err)
})
运行程序之前的目录结构:
运行程序后的目录结构:
输出:
相关用法
- Node.js console.timeLog()用法及代码示例
- Node.js GM chop()用法及代码示例
- Node.js GM drawArc()用法及代码示例
- Node.js GM edge()用法及代码示例
- Node.js GM drawLine()用法及代码示例
- Node.js GM bordercolor()用法及代码示例
- Node.js GM border()用法及代码示例
- Node.js GM drawPolyline()用法及代码示例
- Node.js GM channel()用法及代码示例
- Node.js GM whitePoint()用法及代码示例
- Node.js GM operator()用法及代码示例
- Node.js GM transparent()用法及代码示例
- Node.js GM drawRectangle()用法及代码示例
注:本文由纯净天空筛选整理自hunter__js大神的英文原创作品 Node.js | fs.promises.appendFile() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。