Bom dia!
Sua resolução ficou excelente! Você fez um ótimo uso do aprendizado.
Um ponto que você pode observar é na linha:
FileWriter arquivo = new FileWriter("arquivo.txt");
O método construtor de FileWriter aceita receber um parâmetro "true" ou "false" depois do nome do arquivo, indicando se é para fazer adição de novas linhas (quando true) ou se é para fazer um novo arquivo do zero, apagando o que existia anteriormente (quando false). Importante checar isso no futuro quando for usar para não perder dados armazenados anteriormente.
Parabéns pelo empenho nos estudos e continue praticando.
Para que mais pessoas consigam visualizar a sua solução proposta, é recomendado que você marque este tópico como solucionado. Assim pode ajudar ainda mais pessoas :)
Bons estudos!