Referência rápida

Guia Rápido do Módulo fs do Node.js

Um guia de referencia rapida para Node.js fs: leitura e gravacao assincrona e sincrona, monitoramento, metadados e diretorios.

· Publicado

O modulo fs (File System) do Node.js fornece APIs para interagir com o sistema de arquivos local usando Promises, callbacks ou execucao sincrona.

API Baseada em Promises (fs/promises)

const fs = require('fs/promises');
// import fs from 'node:fs/promises';

// Ler arquivo como string UTF-8
const content = await fs.readFile('data.txt', 'utf8');

// Gravar ou substituir conteudo do arquivo
await fs.writeFile('output.txt', 'Hello World', 'utf8');

// Adicionar conteudo ao final do arquivo
await fs.appendFile('log.txt', 'New entry\n', 'utf8');

// Verificar existencia e permissoes de acesso
try {
  await fs.access('config.json');
} catch {
  console.log('Arquivo nao existe ou nao pode ser acessado');
}

API Síncrona

const fs = require('fs');

const data = fs.readFileSync('input.txt', 'utf8');
fs.writeFileSync('output.txt', data);
fs.appendFileSync('output.txt', '\nappended');

const exists = fs.existsSync('file.txt');

Metadados e Estatísticas do Arquivo (fs.stat)

const stats = await fs.stat('file.txt');

stats.isFile();            // -> arquivo regular (true / false)
stats.isDirectory();       // -> diretorio (true / false)
stats.isSymbolicLink();    // -> link simbolico (true / false)
stats.size;                // Tamanho do arquivo em bytes
stats.mtime;               // Data e hora da ultima modificacao

Operações em Diretórios

// Listar itens do diretorio
const files = await fs.readdir('src/');

// Criacao recursiva de diretorios
await fs.mkdir('build/assets/css', { recursive: true });

// Remocao recursiva de diretorios
await fs.rm('dist/', { recursive: true, force: true });

Monitoramento do Sistema de Arquivos (fs.watch)

const fs = require('fs');

const watcher = fs.watch('src/', { recursive: true }, (eventType, filename) => {
  console.log(`Event: ${eventType} on ${filename}`);
});

// Parar monitoramento
watcher.close();

Descritores de Arquivos (File Descriptors)

const fs = require('fs/promises');

// Abrir somente para leitura
const filehandle = await fs.open('archive.bin', 'r');

// Alocar buffer de 1024 bytes
const buffer = Buffer.alloc(1024);

// Ler bytes para o buffer
const { bytesRead } = await filehandle.read(buffer, 0, 1024, 0);

await filehandle.close();

Referências

Temas relacionados