Capítulo 13: Manipulação de Arquivos (Módulo FS) 💾🧟
Neste capítulo, vamos aprender a ler e escrever arquivos no disco usando o módulo nativo do Node.js chamado FS (File System), com o tema The Last of Us!
📖 O que é o Módulo FS?
O Node.js possui um módulo chamado fs que nos permite interagir com o sistema de arquivos do computador. Podemos usar a versão clássica (com callbacks) ou a versão moderna (com Promises e async/await). Vamos usar a versão moderna!
📖 Exemplo Guiado: Salvando o Diário
Vamos criar um programa que salva um registro de sobrevivente e depois lê esse mesmo arquivo.
- Crie o arquivo
diario_sobrevivente.jsna pastasrc/:
// Importando a versão baseada em Promises do módulo FS
const fs = require('fs').promises;
const gerenciarDiario = async () => {
const conteudo = "Registro de Sobrevivente\nNome: Joel\nStatus: Saudavel";
try {
// 1. Escrevendo no arquivo
await fs.writeFile('diario.txt', conteudo);
console.log("Diario salvo com sucesso!");
// 2. Lendo o arquivo
const dadosLidos = await fs.readFile('diario.txt', 'utf-8');
console.log("\n--- Lendo do Arquivo ---");
console.log(dadosLidos);
} catch (erro) {
console.error("Erro ao manipular o arquivo:", erro);
}
};
gerenciarDiario();🕹️ Como Executar e Testar no VS Code
- Abra o terminal integrado.
- Execute:
node diario_sobrevivente.js - Um arquivo
diario.txtserá criado na pasta!
Resultado Esperado:
Diario salvo com sucesso!
--- Lendo do Arquivo ---
Registro de Sobrevivente
Nome: Joel
Status: Saudavel📊 Ilustração Visual: Fluxo de Arquivos
Veja como o Node.js lê e escreve:
graph LR A[💻 Código JS] -->|writeFile| B[💾 arquivo.txt] B -->|readFile| A
🛠️ Prática Obrigatória 1: Anexando Notas
Pesquise sobre o método fs.appendFile (ou use writeFile lendo o conteúdo antigo primeiro) para adicionar a linha “Nota: Cuidado com os estaladores!” no arquivo diario.txt.
🔑 Gabarito de Código
Prática 1: anexar_nota.js
const fs = require('fs').promises;
const anexar = async () => {
try {
// O appendFile adiciona no final sem apagar o que já existia
await fs.appendFile('diario.txt', "\nNota: Cuidado com os estaladores!");
console.log("Nota adicionada!");
const conteudo = await fs.readFile('diario.txt', 'utf-8');
console.log(conteudo);
} catch (erro) {
console.error(erro);
}
};
anexar();📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
(Siga o padrão estabelecido no Guia)