Core Concepts
File System
Read, write, and manage files and directories using Node.js built-in fs module.
The fs Module
Node.js's built-in fs module provides file system operations. Use fs.promises for async operations with async/await.
Common Operations
- Reading files:
fs.readFile - Writing files:
fs.writeFile - Appending:
fs.appendFile - Deleting:
fs.unlink - Directories:
fs.mkdir,fs.readdir - Checking existence:
fs.access,fs.stat
Streams
For large files, use streams to process data in chunks rather than loading everything into memory.
Example
nodejs
const fs = require('fs').promises;
const path = require('path');
async function fileDemo() {
const filePath = path.join(__dirname, 'data.txt');
// Write a file
await fs.writeFile(filePath, 'Hello, Node.js!\n');
console.log('File written');
// Append to file
await fs.appendFile(filePath, 'Line 2\nLine 3\n');
// Read the file
const content = await fs.readFile(filePath, 'utf8');
console.log(content);
// Get file info
const stats = await fs.stat(filePath);
console.log('Size:', stats.size, 'bytes');
console.log('Modified:', stats.mtime);
// List directory contents
const files = await fs.readdir(__dirname);
console.log('Files:', files);
// Create directory
await fs.mkdir(path.join(__dirname, 'output'), { recursive: true });
// Delete file
await fs.unlink(filePath);
}
// Streams for large files
const { createReadStream, createWriteStream } = require('fs');
const readline = require('readline');
async function processLargeFile(inputPath) {
const rl = readline.createInterface({
input: createReadStream(inputPath),
crlfDelay: Infinity,
});
for await (const line of rl) {
console.log('Line:', line);
}
}
fileDemo().catch(console.error);Try it yourself — NODEJS