Bem galera estou com programa simples e preciso toda vez que rodar ele, deve carregar os dados gravados do arquvo .txt e quando sair ele atualizar o arquivo para que eu não perca nenhuma alteração. Alguém pode me ajudar a fazer isso obrigado.
Segue o código:
import java.util.*;
public class Aplicacao {
static Scanner sc = new Scanner(System.in);
// Criando a lista
// ArrayList<Professor> listaProf = new ArrayList();
// TreeSet<Professor> listaProf = new TreeSet();
static HashMap listaProf = new HashMap();
public static void main(String[] args) {
telaPrincipal();
}
public static void telaPrincipal() {
System.out.println("Digite sua OPÇÃO:\n");
System.out.println("0 : Incluir Professor.");
System.out.println("1 : Excluir Professor.");
System.out.println("2 : Consultar Professor.");
System.out.println("3 : Alterar Professor.");
System.out.println("4 : Sair do Programa.");
int op = sc.nextInt();
switch (op) {
case 0:
incluirProf();
case 1:
excluirProf();
case 2:
consultarProf();
case 3:
alterarProf();
case 4:
System.exit(0);
}
}
public static void incluirProf() {
while (true) {
Scanner sc = new Scanner(System.in);
Professor prof = new Professor();
System.out.print("Digite a matrícula do Professor: ");
int matricula = sc.nextInt();
prof.setMatricula(Integer.valueOf(matricula));
System.out.print("Digite o nome do Professor: ");
String nome = sc.next();
prof.setNome(nome);
System.out.print("Digite o telefone do Professor: ");
String telefone = sc.next();
prof.setTelefone(telefone);
System.out.print("Digite o turno do Professor: ");
String turno = sc.next();
prof.setTurno(turno);
System.out.print("Digite o salário do Professor: ");
String salario = sc.next();
prof.setSalario(salario);
// Coloco na lista
listaProf.put(matricula, prof);
System.out.println("Para sair digite FIM ou 1 para continuar: ");
String saida = sc.next();
if (saida.equals("FIM"))
telaPrincipal();
}
}
public static void consultarProf() {
Scanner sc = new Scanner(System.in);
while (true) {
try {
System.out.println("Digite a matrícula do Professor:\n");
int matricula = sc.nextInt();
Professor prof = (Professor) listaProf.get(matricula);
System.out.println("\nA matrícula do Professor é: "
+ prof.getMatricula() + "\nO nome do Professor é: "
+ prof.getNome() + "\nO telefone do Professor é: "
+ prof.getTelefone() + "\nO turno do Professor é: "
+ prof.getTurno() + "\nO salário do Professor é: "
+ prof.getSalario());
System.out.println("Para sair digite FIM ou 1 para continuar: ");
String saida = sc.next();
if (saida.equals("FIM"))
telaPrincipal();
} catch (NullPointerException ex) {
System.out.println("Matrícula Inexistente");
telaPrincipal();
}
}
}
public static void excluirProf() {
Scanner sc = new Scanner(System.in);
while (true) {
try {
System.out.println("Digite a matrícula do Professor que deseja excluir:\n");
int matricula = sc.nextInt();
Professor prof = (Professor) listaProf.get(matricula);
listaProf.remove(matricula);
System.out.println("Para sair digite FIM ou 1 para continuar: ");
String saida = sc.next();
if (saida.equals("FIM"))
telaPrincipal();
} catch (NullPointerException ex) {
System.out.println("Matrícula Inexistente");
excluirProf();
}
}
}
public static void alterarProf() {
while (true) {
Scanner sc = new Scanner(System.in);
Professor prof = new Professor();
System.out.print("Digite a matrícula do Professor que deseja alterar: ");
int matricula = sc.nextInt();
prof.setMatricula(Integer.valueOf(matricula));
System.out.print("Digite o nome do Professor: ");
String nome = sc.next();
prof.setNome(nome);
System.out.print("Digite o telefone do Professor: ");
String telefone = sc.next();
prof.setTelefone(telefone);
System.out.print("Digite o turno do Professor: ");
String turno = sc.next();
prof.setTurno(turno);
System.out.print("Digite o salário do Professor: ");
String salario = sc.next();
prof.setSalario(salario);
// Coloco na lista
listaProf.put(matricula, prof);
System.out.println("Para sair digite FIM ou 1 para continuar: ");
String saida = sc.next();
if (saida.equals("FIM"))
telaPrincipal();
}
}
}