DEV Community

Romulo Gatto
Romulo Gatto

Posted on

Working with File System in Node.js

Working with File System in Node.js

Node.js provides powerful and convenient built-in modules for interacting with the file system. Whether you need to read, write, or manipulate files, Node.js has got you covered. In this guide, we will explore some of the most commonly used features of the fs module and learn how to make the most out of them.

Getting Started

Before we dive into working with the file system in Node.js, make sure you have installed Node.js on your machine. You can visit nodejs.org for instructions on installing Node.js.

Reading Files

Reading files is a common task when working with data. Thankfully, reading files in Node.js is straightforward using the fs.readFile() method. Here's an example that demonstrates how to read a file asynchronously:

const fs = require('fs');

fs.readFile('path/to/file.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});
Enter fullscreen mode Exit fullscreen mode

In this example, we use the readFile() method from fs to read 'path/to/file.txt'. The second parameter 'utf8' specifies that we want to read text-based data from our file. Upon successfully reading the file, it returns its contents as a string which we can further process or display.

Writing Files

To create new files or overwrite existing ones in synchronous mode, you can use the writeFileSync() method provided by fs. Here's an example:

const fs = require('fs');

try {
  fs.writeFileSync('path/to/newfile.txt', 'Hello World!');
  console.log('File created successfully!');
} catch (err) {
  console.error(err);
}
Enter fullscreen mode Exit fullscreen mode

The code above creates and writes content to 'path/to/newfile.txt'. If any error occurs during the process, it will be caught and displayed in the console.

Appending to Files

If you need to add content to an existing file without overwriting its contents, Node.js provides the appendFileSync() method. Here's an example:

const fs = require('fs');

try {
  fs.appendFileSync('path/to/file.txt', 'New content.');
  console.log('Content appended successfully!');
} catch (err) {
  console.error(err);
}
Enter fullscreen mode Exit fullscreen mode

In this example, we append the string 'New content.' to 'path/to/file.txt'. You can use this method to continuously update logs or add new entries to a file.

Renaming and Deleting Files

Node.js also offers methods for renaming and deleting files. To rename a file, you can use fs.renameSync():

const fs = require('fs');

try {
  fs.renameSync('old_file.txt', 'new_file.txt');
  console.log('File renamed successfully!');
} catch (err) {
  console.error(err);
}
Enter fullscreen mode Exit fullscreen mode

To delete a file synchronously, you can use fs.unlinkSync():

const fs = require('fs');

try {
   fs.unlinkSync('/path/to/delete.txt');
   console.log("File deleted successfully!");
} catch (err) {
   console.error(err);
}
Enter fullscreen mode Exit fullscreen mode

Make sure to replace 'old_file.txt' with the actual name of the file you want to rename and /path/to/delete.txt with the path of the file you want to delete.

Conclusion

Working with files is an essential part of many Node.js applications. In this guide, we explored some practical examples that demonstrate how easily we can perform common operations on files using built-in modules like fs. Now that you're equipped with these techniques, go ahead and start working with files in your Node.js projects!

Top comments (0)