File System Module in Node.js

📘 Node.js 👁 50 views 📅 Nov 05, 2025
⏱ Estimated reading time: 2 min

The File System (fs) module allows Node.js to interact with files and directories on the system.
It is a core module, so no installation is required.

const fs = require('fs');

1. Types of File System Operations

The fs module supports three styles of operations:

1.1 Synchronous (Blocking)

  • Executes operations sequentially

  • Blocks the event loop

  • Suitable for scripts and startup tasks

Example:

const data = fs.readFileSync('file.txt', 'utf8'); console.log(data);

1.2 Asynchronous (Callback-based)

  • Non-blocking

  • Uses callbacks

  • Preferred for production apps

Example:

fs.readFile('file.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); });

1.3 Promise-based (fs/promises)

  • Uses Promises and async/await

  • Clean and modern approach

Example:

const fs = require('fs/promises'); const data = await fs.readFile('file.txt', 'utf8');

2. Common File Operations

2.1 Reading Files

fs.readFile('a.txt', 'utf8', callback); fs.readFileSync('a.txt', 'utf8');

2.2 Writing Files

fs.writeFile('a.txt', 'Hello', callback); fs.writeFileSync('a.txt', 'Hello');

2.3 Appending Files

fs.appendFile('a.txt', '\nNew line', callback);

2.4 Deleting Files

fs.unlink('a.txt', callback);

3. Directory Operations

3.1 Create Directory

fs.mkdir('myFolder', callback);

3.2 Read Directory

fs.readdir('myFolder', callback);

3.3 Remove Directory

fs.rmdir('myFolder', callback);

4. File Information (Stats)

fs.stat('file.txt', (err, stats) => { console.log(stats.isFile()); console.log(stats.size); });

5. File Streams

Streams allow reading/writing large files efficiently.

5.1 Read Stream

const readStream = fs.createReadStream('big.txt'); readStream.on('data', chunk => { console.log(chunk.toString()); });

5.2 Write Stream

const writeStream = fs.createWriteStream('out.txt'); writeStream.write('Hello Stream');

6. File Permissions

fs.chmod('file.txt', 0o644, callback);

7. Watching Files

fs.watch('file.txt', (eventType, filename) => { console.log(eventType); });

8. Error Handling

Always handle errors properly:

if (err) { console.error(err); return; }

9. When to Use Which Method

Use CaseRecommended
Server appsAsync / Promises
Startup scriptsSync
Large filesStreams

10. Advantages of fs Module

  • Built-in and fast

  • Supports sync & async

  • Handles files and directories

  • Stream support for large data


11. Summary

  • fs is a core Node.js module

  • Supports synchronous, asynchronous, and promise-based APIs

  • Used for file and directory operations

  • Streams improve performance for large files


🔒 Some advanced sections are available for Registered Members
Register Now

Share this Post


← Back to Tutorials

Popular Competitive Exam Quizzes