Criar e gravar dados em um arquivo

Boa Noite

Preciso fazer um exercício de faculdade de cadastro de alunos, porem o programa precisa gravar os dados em um arquivo, estou sabendo fazer isso, alguem pode me dar uma luz?


package Atividade_2;

classe principal
    import java.util.Scanner;

    /**
     *
     * @author broth
     */
    public class Principal {

        
        public static void main(String[] args) {
      
            
            Scanner entrada = new Scanner(System.in);
            Scanner entradaString = new Scanner(System.in);

            int menu;
            //referencia para a classe Aluno
            Aluno objAluno;

            String Nome, email, Curso;
           

            do {
                exibirmenu();
                menu = entrada.nextInt();

                switch (menu) {
                    case 1: //cadastro do funcionario
                           System.out.println("====> Cadastro de Alunos");
                        System.out.println("Digite o nome do Alunos");
                        Nome = entradaString.nextLine();
                        System.out.println("Digite o email");
                        email = entradaString.nextLine();
                        System.out.println("Digite o curso");
                        Curso = entradaString.nextLine();

                        //criar objeto da classe
                        objAluno = new Aluno(Nome, email, Curso);

                        //guardar no Arraylist
                        Cadastro.adicionar(objAluno);

                        break;
                    case 2:
                        System.out.println("===> Lista de alunos");
                        System.out.println(Cadastro.listar());

                        break;
                    case 3:
                        System.out.println("Excluir Aluno");
                        System.out.println("Digite o nome do Aluno");
                        Nome = entradaString.nextLine();
                        if( !(Cadastro.getListadealunos().isEmpty())){ //lista de funcionarios não vazia
                            if(Cadastro.remover(Nome)){
                                 System.out.println("Aluno removido com sucesso");
                            
                             }else{
                               System.out.println("Aluno não encontrado");
                            }
                            
                        }else{
                        System.out.println("Não existe alunos");
                        }
                        break;
                    case 4:
                             System.out.println("Pesquisa por Nome");
                        System.out.println("Digite o nome do aluno: ");
                        Nome = entradaString.nextLine();
                        System.out.println("Encontrado um " + Cadastro.pesquisar(Nome) + " Aluno " + Nome);
                        break;
                    case 5:
                        System.out.println("");
                        break;
                    case 6:
                        System.out.println("");
                        break;

                    default:
                        System.out.println("Opção de Menu inválida");

                }

               }while(menu != 5);
            
            
        }
        
      
            static void exibirmenu(){
            
            System.out.println("========== Alunos =========");
            System.out.println(" 1 - Cadastrar");
            System.out.println(" 2 - Listar");
            System.out.println(" 3 - Exclui Aluno");
            System.out.println(" 4 - Pesquisar por Nome");
            System.out.println(" 5 - Sair");
            System.out.println(" ====> Escolha uma Opção");
            
        }
        
    }

classe aluno

public class Aluno {

    private String Nome;
    private String email;
    private String Curso;

//construtores
    public Aluno() {
    }

// sobrecarregado
    public Aluno(String nome, String email, String Curso) {
        this.Nome = nome;
        this.email = email;
        this.Curso = Curso;
    }

//metodos de acesso - getters - setters
    
    public String getNome() {
        return Nome;
    }

    public void setNome(String Nome) {
        this.Nome = Nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getCurso() {
        return Curso;
    }

    public void setCurso(String Curso) {
        this.Curso = Curso;
    }
    
    //imprimir
    
    public String imprimir() {
        return "nome" + Nome + "\nE-mail" + email +  "\nCurso" + Curso; 
    }
    
 classe cadastro

*/
package Atividade_2;

import java.util.ArrayList;

/**
*

@author broth
*/
public class Cadastro {

private static ArrayList Listadealunos = new ArrayList<>();

//metodo Get

public static ArrayList getListadealunos() {
return Listadealunos;
}

//adicionar um Objeto na lista
static public void adicionar(Aluno a){
Listadealunos.add(a);
}

//lista todos os objetos da lista
static public String listar(){
String saida = “”;
int i=1;
for(Aluno a: Listadealunos) {
saida += "\n====== Aluno Nº " + (i++) + “=====\n”;
saida += a.imprimir() + “\n”;
}

 return saida;
}

// pesquisa por nome
public static int pesquisar(String Nome){
int qtd = 0;

 for(Aluno a: Listadealunos) {
 if(a.getNome().equalsIgnoreCase(Nome)){
   qtd++;
 }
 }
 
 return qtd;
}

 //remove um aluno pelo nome
static public boolean remover(String nome){
for(Aluno a: Listadealunos){
if(a.getNome().equalsIgnoreCase(nome)){
Listadealunos.remove(a);
return true;
}

}

return false;
}

}   
        
        

    }

O processo é relativamente simples meu amigo. Você precisa criar um arquivo caso ele não exista (File), depois carregar esse arquivo em memória (FileWriter) e depois usar um buffer pra enviar os dados pro arquivo (BufferedWriter). Ao completar você precisa retirar o arquivo da memória e fechá-lo (close()).

Segue abaixo um exemplo:

public void gravar(Set<Produto> conjunto, String nomeArq) {    
        File fArquivo = null;  
        FileWriter fwArquivo = null;  
        BufferedWriter bw = null;  
 
        try {
            fArquivo = new File(nomeArq + ".txt"); 

            fwArquivo = new FileWriter(fArquivo);
            
            bw = new BufferedWriter(fwArquivo);
            
            for (Produto prod:conjunto) {
            	bw.write(prod.toString() + "\n");
            }

            bw.close();
            fwArquivo.close();
        }
        catch (Exception e) {
            System.err.println("Erro ao inserir linhas no arquivo: " + fArquivo);
        }  
    }