Topics File System & I/O The fs Module
beginner 15 min read

The fs Module

Reading, writing, deleting files and working with directories using the fs module.

File System Module

The fs (file system) module provides an API for interacting with the file system in a POSIX-like manner.

const fs = require('fs');\n\n// Synchronous - blocking\nconst data = fs.readFileSync('./file.txt', 'utf8');\nconsole.log(data);\n\n// Asynchronous - non-blocking (callback)\nfs.readFile('./file.txt', 'utf8', (err, data) => {\n  if (err) throw err;\n  console.log(data);\n});\n\n// Promise based (fs.promises)\nconst fsPromises = require('fs').promises;\n\nasync function readFile() {\n  try {\n    const data = await fsPromises.readFile('./file.txt', 'utf8');\n    console.log(data);\n  } catch (err) {\n    console.error(err);\n  }\n}

Writing Files

// Write (overwrites)\nfs.writeFileSync('output.txt', 'Hello World');\n\n// Append\nfs.appendFileSync('log.txt', 'New log entry\n');\n\n// Directory operations\nfs.mkdirSync('./data', { recursive: true });\nfs.readdirSync('./folder');\nfs.rmSync('./old-file.txt');

Examples

const fs = require('fs');
const path = require('path');

const dir = './logs';
if (!fs.existsSync(dir)) {
  fs.mkdirSync(dir, { recursive: true });
}

const logFile = path.join(dir, 'app.log');
fs.appendFileSync(logFile, `${new Date().toISOString()} - Started\n`);

console.log('Log entry written to', logFile);
console.log('Directory contents:', fs.readdirSync(dir));

Your Notes

Sign in to take notes for this lesson.

Discussion

Sign in to join the discussion.

Flashcards

Sign in to create flashcards.