Você está aqui: Node.js ::: Dicas & Truques ::: Arquivos e Diretórios |
Como ler o conteúdo de arquivos usando as funções readFile() e readFileSync() do módulo File System (fs) do Node.jsQuantidade de visualizações: 4485 vezes |
O Node.js facilita muito o nosso trabalho quando o assunto é ler o conteúdo de um arquivo, seja um arquivo .txt, .html, .css, etc, até mesmo arquivos binários. O módulo File System, ou fs, nos fornece duas funções, a saber: readFile() e readFileSync(). A primeira nos permite ler o conteúdo do arquivo de forma assíncrona, enquanto a segunda permite a leitura de forma síncrona, ou seja, com bloqueio. Vamos começar com a função readFileSync(), por ser mais fácil de entender. Veja o trecho de código a seguir: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // precisamos importar o módulo File System var fs = require('fs'); // nome e caminho do arquivo a ser lido var arquivo = 'C:\\estudos_nodejs\\texto.txt'; // guardamos o conteúdo do arquivo var conteudo = fs.readFileSync(arquivo); // e o exibimos em seguida console.log('Conteúdo do arquivo:\n\n' + conteudo); Ao executar este código nós teremos o seguinte resultado: c:\estudos_nodejs>node ler_arquivo.js Conteúdo do arquivo: Esta é a primeira linha do arquivo. Esta é a segunda linha do arquivo. E esta é a terceira linha do arquivo. É importante observar que uma chamada à função fs.readFileSync() bloqueia as demais instruções, ou seja, o código da aplicação fica congelado até que o conteúdo do arquivo seja carregado por completo na variável conteudo. Em aplicações console essa pode ser uma boa idéia, principalmente se as demais partes da aplicações dependerem do resultado dessa leitura. Note que uma chamada ao método fs.readFileSync() pode atirar uma exceção (erro) do tipo: Error: ENOENT: no such file or directory, open caso o arquivo não puder ser encontrado. Na dúvida é bom usar um bloco try...catch para evitar que sua aplicação morra antes da hora. A função readFile(), por sua vez, é assíncrona. Isso que dizer que, enquanto ela se encarrega de fazer a leitura do arquivo, as demais partes do código da aplicação continuarão sendo executadas. Por isso, devemos fornecer a ela uma função de callback. Veja o exemplo a seguir: ---------------------------------------------------------------------- Precisa de ajuda? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Este código foi útil? Paga um cafezinho pra mim :-( PIX: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- // precisamos importar o módulo File System var fs = require('fs'); // nome e caminho do arquivo a ser lido var arquivo = 'C:\\estudos_nodejs\\texto.txt'; // lemos o conteúdo do arquivo e o guardamos // na variável conteudo (de forma assíncrona) fs.readFile(arquivo, (erro, conteudo) => { if(erro){ throw "Ops, aconteceu um erro: " + erro; } else{ console.log("Conteúdo do arquivo\n\n:" + conteudo); } }); Ao executarmos este código nós teremos o mesmo resultado do código anterior, com a diferença de que a leitura agora ocorrerá de forma assícrona. Tenha cuidado com isso. Código assíncrono acessando variáveis externas pode ser um perigo. |
![]() |
Veja mais Dicas e truques de Node.js |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |