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);
}
}