Node.js | fs.writeFileSync() Method - GeeksforGeeks

22 Jun, 2020
The ‘fs’ module of Node.js implements the File I/O operation. Methods in the fs module can be synchronous as well as asynchronous. The Asynchronous function has a callback function as the last parameter which indicates the completion of the asynchronous function. Node.js developers prefer asynchronous methods over synchronous methods as asynchronous methods never block a program during its execution, whereas the later does. Blocking the main thread is malpractice in Node.js, thus synchronous functions should only be used for debugging or when no other options are available. The fs.writeFileSync() is a synchronous method. The fs.writeFileSync() creates a new file if the specified file does not exist. Also the ‘readline-sync’ module is used to enable user input at runtime.Syntax:
fs.writeFileSync( file, data, options )
Parameters: This method accept three parameters as mentioned above and described below:
file: It is a string, Buffer, URL or file description integer that denotes the path of the file where it has to be written. Using a file descriptor will make the it behave similar to fs.write() method.
data: It is a string, Buffer, TypedArray or DataView that will be written to the file.
options: It is an string or object that can be used to specify optional parameters that will affect the output. It has three optional parameter:encoding: It is a string which specifies the encoding of the file. The default value is ‘utf8’.mode: It is an integer which specifies the file mode. The default value is 0o666.flag: It is a string which specifies the flag used while writing to the file. The default value is ‘w’.
encoding: It is a string which specifies the encoding of the file. The default value is ‘utf8’.
mode: It is an integer which specifies the file mode. The default value is 0o666.
flag: It is a string which specifies the flag used while writing to the file. The default value is ‘w’.
Below examples illustrate the fs.writeFileSync() method in Node.js:
Example 1:
// Node.js program to demonstrate the// fs.writeFileSync() method  // Import the filesystem moduleconst fs = require('fs');  let data = "This is a file containing a collection"           + " of programming languages.\n" + "1. C\n2. C++\n3. Python";  fs.writeFileSync("programming.txt", data);console.log("File written successfully\n");console.log("The written has the following contents:");console.log(fs.readFileSync("programming.txt", "utf8"));
Output:
File written successfully

The written has the following contents:
This is a file containing a collection of programming languages.
1. C
2. C++
3. Python
Example 2:
// Node.js program to demonstrate the// fs.writeFileSync() method  // Import the filesystem moduleconst fs = require('fs');  // Writing to the file 5 times// with the append file modefor (let i = 0; i < 5; i++) {  fs.writeFileSync("movies.txt",    "Movie " + i + "\n",    {      encoding: "utf8",      flag: "a+",      mode: 0o666    });}  console.log("File written successfully 5 times\n");console.log("The written file has the following contents:");console.log(fs.readFileSync("movies.txt", "utf8"));
Output:
File written successfully 5 times

The written file has the following contents:
Movie 0
Movie 1
Movie 2
Movie 3
Movie 4
Reference: https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options
Example 3: Taking runtime input from users for file name and file data using readline module
// Write Javascript code herevar readline = require('readline-sync'); var fs = require("fs");     var path = readline.question("Enter file name/path: ");   console.log("Entered path : " + path);   var data = readline.question("Enter file data: ");  //synchronous functions may throw errors //which can be handled using try-catch blocktry {  fs.writeFileSync(path, data,{flag:'a+'});   //'a+' is append mode  console.log("File written successfully");} catch(err) {  console.error(err);}console.log("-----------------------------------------------");try{const data = fs.readFileSync(path,{encoding: "utf8"});   console.log("File content is as follows:");  // Display the file data   console.log(data); }catch(err){console.log(err);}
Output
Example 4: Taking runtime input from users for file data using readline module using buffer
// Write Javascript code herevar fs = require("fs");var readline = require('readline-sync'); var path = readline.question("Enter file name/path: ");   console.log("Entered path : " + path); // 1024 specifies the buffer size. We can limit // the data size by this approachvar buf = new Buffer.alloc(1024);buf = readline.question("Enter data:");    try {  fs.writeFileSync(path, buf,{flag:'a+'});  console.log("File written successfully");} catch(err) {  console.error(err);}console.log("-----------------------------------------------");try{const data = fs.readFileSync(path,{encoding: "utf8"});   console.log("File content is as follows:");  // Display the file data   console.log(data); }catch(err){console.log(err);}
Output
Shreyasi_Chakraborty
Node.js-fs-module
JavaScript
Web Technologies
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Comments
Old Comments
Difference between var, let and const keywords in JavaScript
Convert a string to an integer in JavaScript
Differences between Functional Components and Class Components in React
How to append HTML code to a div using JavaScript ?
How to Open URL in New Tab using JavaScript ?
Top 10 Front End Developer Skills That You Need in 2022
Installation of Node.js on Linux
Top 10 Projects For Beginners To Practice HTML and CSS Skills
How to fetch data from an API in ReactJS ?
How to insert spaces/tabs in text using HTML/CSS?