File System Module
The fs module lets you interact with the file system. You can read, write, delete, and modify files and directories.
Reading Files
const fs = require("fs").promises;
// Async (recommended)
async function readFile() {
try {
const data = await fs.readFile("data.txt", "utf-8");
console.log(data);
} catch (err) {
console.error(err);
}
}
// Synchronous (blocks event loop)
const data = fs.readFileSync("data.txt", "utf-8");
Try it Yourself โ
Writing Files
// Create or overwrite
await fs.writeFile("output.txt", "Hello, World!");
// Append to file
await fs.appendFile("output.txt", "\nNew line");
// Write JSON
await fs.writeFile("data.json", JSON.stringify(data, null, 2));
Working with Directories
// Create directory
await fs.mkdir("new-folder", { recursive: true });
// Read directory contents
const files = await fs.readdir("./");
// Check if file/directory exists
try {
await fs.access("file.txt");
console.log("File exists");
} catch {
console.log("File does not exist");
}
// Delete
await fs.unlink("file.txt");
await fs.rm("folder", { recursive: true });
File Streams
For large files, use streams instead of reading everything into memory:
const fs = require("fs");
// Read stream
const readStream = fs.createReadStream("large-file.txt");
readStream.on("data", (chunk) => {
console.log(`Received ${chunk.length} bytes`);
});
// Write stream
const writeStream = fs.createWriteStream("output.txt");
writeStream.write("Hello ");
writeStream.write("World!");
writeStream.end();