26

How I can add text in my file but without overwriting the old text. I use the module fs (node js)

I tried this code but it doesn't work.

fs.writeFileSync("file.txt", 'Text', "UTF-8",{'flags': 'w+'});

any suggestion and Thanks.

1

2 Answers 2

31

Check the flags here: http://nodejs.org/api/fs.html#fs_fs_open_path_flags_mode_callback - you are currently using w+ which:

'w+' - Open file for reading and writing. The file is created (if it does not exist) or truncated (if it exists).

You should use a instead:

'a' - Open file for appending. The file is created if it does not exist.

'ax' - Like 'a' but opens the file in exclusive mode.

'a+' - Open file for reading and appending. The file is created if it does not exist.

'ax+' - Like 'a+' but opens the file in exclusive mode.

Sign up to request clarification or add additional context in comments.

3 Comments

Thank you for ur answer, I found a solution, I use this code : fs.appendFileSync("file.txt", 'My Text \n', "UTF-8",{'flags': 'a+'});
this doesn't seem to explain how to avoiding writing to a file if it already exists...?
NOTE: On Linux, positional writes don't work when the file is opened in append mode. The kernel ignores the position argument and always appends the data to the end of the file.
14

Use fs.appendFile, that will just append the new information!

fs.appendFile("file.txt", 'Text',function(err){
if(err) throw err;
console.log('IS WRITTEN')
});

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.