Node.js filehandle.appendFile() Method
Last Updated :
10 Jul, 2020
The filehandle.appendFile() method is defined in the File System module of Node.js. The File System module is basically to interact with the hard disk of the user’s computer. The appendFile() method is used to asynchronously append new data in the existing file or if the file does not exist then the file is created first and after that given data is appended to it.
Syntax:
filehandle.appendFile(data, options);
Parameters: This method accept two parameter as mentioned above and described below:
- data: It is a String or Buffer that is going to append to the target file.
- options: It is an optional parameter that affects the output in someway accordingly we provide it to the function call or not.
- encoding: It specifies the encoding technique, default is ‘UTF8’.
Approach: The fs.promises.open(path, mode) method returns a promise that resolved with the filehandle object. First, we create a filehandle object and after that proceed with appendFile() method with the help of this.
When operating on filehandles, the mode cannot be changed from what it was set to with fs.promises.open(), therefore we make sure to add ‘a’ or ‘a+’ to the mode when invoking fs.promises.open() method otherwise appendFile() method just acts as writeFile() method.
Example 1: This example illustrates how new data appended to a previously existing files.
const fs = require( 'fs' )
const oldBuffer = fs.readFileSync( './testFile.txt' )
const oldContent = oldBuffer.toString()
console.log(`\nBefore Append: ${oldContent}\n`)
const appendDataToFile = async (path, data) => {
let filehandle = null
try {
filehandle = await fs.promises.open(path, mode = 'a' )
await filehandle.appendFile(data)
} finally {
if (filehandle) {
await filehandle.close();
}
}
const newBuffer = fs.readFileSync( './testFile.txt' )
const newContent = newBuffer.toString()
console.log(`After Append: ${newContent}`)
}
appendDataToFile( './testFile.txt' ,
'\nHey, I am newly added..!!' )
. catch (err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})
|
Output:
Example 2: This example illustrates how data appended to the newly created file at run time.
const fs = require( 'fs' )
const appendDataToFile = async (path, data) => {
let filehandle = null
try {
filehandle = await fs.promises.open(path, mode = 'a' )
await filehandle.appendFile(data)
} finally {
if (filehandle) {
await filehandle.close();
}
}
const buff = fs.readFileSync( './testFile.txt' )
const content = buff.toString()
console.log(`\nContent : ${content}`)
}
appendDataToFile( './testFile.txt' ,
'\nPlease add me to the test file..!!' )
. catch (err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})
|
Directory structure before running the program:
Directory structure after running the program:
Output:
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...