Boa noite pexoal do GUJ
Estou tentando criar uma classe que cadastra alunos e no final em vez de criar um array para guardar o cadastro, quero guardar cada cadastro em um ficheiro, podendo esse mesmo ficheiro ser incrementado, de modo que não perca os cadastros anteriores. O código é esse:public class MainAluno {
public static void main(String[] args) throws IOException {
boolean dadosCorrectos = false;
String nomeI = "",
apelidoI = "";
int anoI = 0,
anoCursoI = 0;
int confirma;
do {
confirma = JOptionPane.showConfirmDialog(null, "Promete"
+ " inserir bem os dados? Nada de graçolas. Ao "
+ "clicar em <YES> está a dizer que entendeu "
+ "o que leu e que não vai "
+ "inserir dados errados");
} while (confirma != 0);
int opccao = Integer.parseInt(JOptionPane.showInputDialog(null, "Que "
+ "tipo de Aluno quer criar?\n*********************************"
+ "********\n"
+ "** 1) Interno |--| 2) Transferido **\n"
+ "*****************************************"));
switch (opccao) {
case 1:
do {
dadosCorrectos = true;
try {
nomeI = JOptionPane.showInputDialog("Nome do aluno:");
apelidoI = JOptionPane.showInputDialog("Apelido "
+ "do aluno:");
// if (nomeI.matches(".*[\\d].*")) {
// dadosCorrectos = false;
// JOptionPane.showMessageDialog(null, "Nome não pode possuir números");
// }
for (int i = 0; i < nomeI.length(); i++) {
if (nomeI.charAt(i) >= '0'
&& nomeI.charAt(i) <= '9') {
JOptionPane.showMessageDialog(null, "Nome "
+ "!= {0...9} ");
dadosCorrectos = false;
break;
}
}
for (int j = 0; j < apelidoI.length(); j++) {
if (apelidoI.charAt(j) >= '0'
&& apelidoI.charAt(j) <= '9') {
JOptionPane.showMessageDialog(null, "Apelido "
+ "!= {0...9} ");
dadosCorrectos = false;
break;
}
}
do {
anoI = Integer.parseInt(JOptionPane.showInputDialog(""
+ "Ano de Inscrição (de 1977 a 2011) "
+ "de " + nomeI));
} while ((confirma <= 1977) && (confirma >= 2011));
do {
anoCursoI = Integer.parseInt(JOptionPane.showInputDialog("Ano de "
+ "Curso (de 1 a 5) de " + nomeI));
} while ((confirma <= 1) && (confirma >= 5)
&& (confirma != 0));
} catch (NumberFormatException e) {
dadosCorrectos = false;
JOptionPane.showMessageDialog(null, "Tem "
+ "que ser um número");
}
} while (!dadosCorrectos);
AlunoInterno alInt1 = new AlunoInterno(nomeI, apelidoI, anoI, anoCursoI);
System.out.println(alInt1);
JOptionPane.showMessageDialog(
null, alInt1);
alInt1.calcularAnosInscricao(anoI);
// DataOutputStream out = new DataOutputStream(new FileOutputStream("teste.txt", true));
// out.write(JOptionPane.showMessageDialog(null, alInt1));
break;
case 2:
String escolaT = JOptionPane.showInputDialog("Nome da escola de origem");
String nomeT = JOptionPane.showInputDialog("Nome do aluno:");
String apelidoT = JOptionPane.showInputDialog("Apelido do aluno:");
int anoT = Integer.parseInt(JOptionPane.showInputDialog("Ano de Inscrição de " + nomeT));
int anoCursoT = Integer.parseInt(JOptionPane.showInputDialog("Ano de Curso de " + nomeT));
Alunotransferido alTra1 = new Alunotransferido(nomeT, apelidoT, anoT, anoCursoT, escolaT);
System.out.println(alTra1);
JOptionPane.showMessageDialog(
null, alTra1);
alTra1.calcularAnosTransferido(anoT);
break;
}
// File temp = new File("teste.txt");
// FileWriter escreve = new FileWriter("teste.txt", true);
// PrintWriter oksai=new PrintWriter(escreve);
// oksai.println(alInt1);
Depois disso tenho a dizer que na superclasse tem um número de aluno que incrementa quando crio cada aluno. Poderei guardar os cadastros num ficheiro, fechar o IDE e quando voltar a abrir, criar novos alunos e o numero continuar de onde parou? :roll:
Vlw