Como criar um arquivo e salvar em JavaScript
Neste artigo você vai aprender a como criar um arquivo e salvar em JavaScript, vamos utilizar apenas recursos base da linguagem

Fala programador(a), beleza? Bora aprender mais sobre JavaScript!
Neste artigo vamos utilizar uma versão melhorada de um famoso snippet da internet
Nele vamos criar uma função que recebe três argumentos:
- Dados do arquivo;
- Nome do arquivo;
- Tipo do arquivo;
Dentro da função temos a criação do arquivo em Blob, e realizamos uma ação para fazer o download dele
Em navegadores mais antigos criamos uma tag a apenas para o download
Já nos mais modernos temos acesso ao método msSaveOrOpenBlob, que faz para nós o trabalho sujo e torna mais simples esta ação
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Veja o exemplo de código:
function download(data, filename, type) {
const file = new Blob([data], {type: type});
if (window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(file, filename);
return
}
const a = document.createElement("a");
const url = URL.createObjectURL(file);
a.href = url;
a.download = filename;
document.body.appendChild(a);
a.click();
setTimeout(function() {
document.body.removeChild(a);
window.URL.revokeObjectURL(url);
},0);
}
Em navegadores mais modernos acessamos o que está no if, e nos antigos o restante do código é executado
Note que a tag a também é excluída do documento após a operação
Deixe um comentário contando o que achou deste artigo 🙂
Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:
Conclusão
Neste artigo você viu como criar um arquivo e salvar em JavaScript
Utilizamos uma estratégia que também funciona em navegadores antigos
Nossa função cria um novo arquivo, onde definimos: conteúdo, nome e tipo
E depois faz o download do mesmo, de forma imediata
Está buscando a sua primeira vaga como Programador? Confira o nosso treinamento completo clicando aqui.
Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!
Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!
O que é o Blob?
Antes de sair copiando o código, vale entender a peça central dele
Blob é um objeto do próprio JavaScript que representa dados brutos, tipo um pacotinho de conteúdo que o navegador entende como arquivo
É ele que transforma o teu texto, JSON ou CSV em algo que dá pra baixar
Repara que passamos o tipo (type) na criação, é isso que diz pro navegador se aquilo é texto puro, JSON e por aí vai
Entendeu o Blob, o resto do código fica bem mais fácil de ler
Salvando diferentes tipos de arquivo:
A mesma função serve pra vários formatos, muda só o que tu passa nos argumentos
Bora ver na prática?
Arquivo de texto (.txt):
download("Meu conteúdo de texto", "arquivo.txt", "text/plain")
Arquivo JSON (.json):
const dados = { nome: "Matheus", curso: "JavaScript" } download(JSON.stringify(dados), "dados.json", "application/json")
Arquivo CSV (.csv):
const csv = "nome,idade\nMatheus,30\nJoao,25" download(csv, "planilha.csv", "text/csv")
Repara que pro JSON usamos JSON.stringify pra virar texto antes de salvar
Perguntas frequentes:
Dá pra criar arquivo em JavaScript sem biblioteca?
Sim, e é exatamente o que fizemos aqui
Usamos só recursos base da linguagem (Blob, createElement e a URL do objeto), nada de instalar pacote
Como salvar o arquivo automaticamente ao clicar num botão?
É só chamar a função download dentro do evento de clique do botão
Algo tipo botao.addEventListener("click", () => download("texto", "nota.txt", "text/plain"))
E no Node.js, funciona igual?
Não
Esse código é pro navegador, que tem acesso ao document e ao download
No Node.js tu salvaria com o módulo fs (File System), que é outra história
Um cuidado com o nome do arquivo:
Já me ferrei com isso, então fica a dica
Sempre passe a extensão certa no nome (.txt, .json, .csv)
Se esquecer a extensão, o arquivo baixa, mas o sistema não sabe abrir direito e o usuário fica perdido
Leia também
Formações
Formação SAAS com IA
Tire usas ideias do papel criando softwares com IA, integre pagamentos e lance seu projeto!
- 291 aulas
- 18 projetos
- 24h 17min
Blog | Mais populares

As diferenças de var, let e const

Como fazer redirecionamento com PHP
Neste artigo você vai aprender a como fazer redirecionamento com PHP, utilizaremos abordagens fáceis de entender e de aplicar Fala programador(a), beleza? Bora aprender mais […]

ChatGPT: o que é, como usar, dicas e como acessar login
ChatGPT é uma ferramenta de processamento de linguagem natural (NLP) baseada na arquitetura GPT-3.5, desenvolvida pela OpenAI. Sua criação representa um marco significativo no campo […]
