Skip to content

Escrevendo arquivos com Node.js

Escrevendo um arquivo

A maneira mais fácil de escrever em arquivos no Node.js é usar a API fs.writeFile().

javascript
const fs = require('node:fs')
const content = 'Some content!'

fs.writeFile('/Users/joe/test.txt', content, err => {
  if (err) {
    console.error(err)
  } else {
    // arquivo escrito com sucesso
  }
})

Escrevendo um arquivo sincronicamente

Alternativamente, você pode usar a versão síncrona fs.writeFileSync:

javascript
const fs = require('node:fs')
const content = 'Some content!'

try {
  fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
  console.error(err)
}

Você também pode usar o método fsPromises.writeFile() baseado em promises oferecido pelo módulo fs/promises:

javascript
const fs = require('node:fs/promises')
async function example() {
  try {
    const content = 'Some content!'
    await fs.writeFile('/Users/joe/test.txt', content)
  } catch (err) {
    console.log(err)
  }
}

example()

Por padrão, esta API substituirá o conteúdo do arquivo se ele já existir.

Você pode modificar o padrão especificando uma flag:

javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])

As flags que você provavelmente usará são:

FlagDescriçãoArquivo é criado se não existir
r+Esta flag abre o arquivo para leitura e escrita
w+Esta flag abre o arquivo para leitura e escrita e também posiciona o stream no início do arquivo
aEsta flag abre o arquivo para escrita e também posiciona o stream no final do arquivo
a+Este stream abre o arquivo para leitura e escrita e também posiciona o stream no final do arquivo

Você pode encontrar mais informações sobre as flags na documentação do fs.

Adicionando conteúdo a um arquivo

Adicionar conteúdo a arquivos é útil quando você não quer sobrescrever um arquivo com novo conteúdo, mas sim adicioná-lo.

Exemplos

Um método prático para adicionar conteúdo ao final de um arquivo é fs.appendFile() (e seu equivalente fs.appendFileSync()):

javascript
const fs = require('node:fs')
const content = 'Some content!'

fs.appendFile('file_log', content, err => {
  if (err) {
    console.error(err)
  } else {
    // done!
  }
})

Exemplo com Promises

Aqui está um exemplo de fsPromises.appendFile():

javascript
const fs = require('node:fs/promises')
async function example() {
  try {
    const content = 'Some content!'
    await fs.appendFile('/Users/joe/test.txt', content)
  } catch (err) {
    console.log(err)
  }
}

example()