Dúvidas com RandomAccessFIle

1. Dúvidas com RandomAccessFIle

Leonardo Sasounian
lsasounian

(usa Red Hat)

Enviado em 19/11/2016 - 21:20h

Boa noite a todos,

Estou desenvolvendo um código para um trabalho de faculdade onde preciso preencher dados e armazena-los em um ArrayList, depois disso, ai selecionar uma opção no menu, ela chama um objeto de uma outra classe para salvar todo o conteúdo do ArrayList dentro de um RandomAccessFile em txt. Fiz o código porém ao executa-lo, ele salva somente uma letra "y" dentro do arquivo aleatório ao em vez de salvar o conteúdo do ArrayList. Alguem sabe como arrumar?

Segue abaixo o código e as 3 classes. O que realmente importa e o que está com problema é o objeto salvaTodosAlunos()
Classe GerenciaAluno
import java.io.*;
import java.util.ArrayList;

public class GerenciaAluno {

private static ArrayList<Aluno> alunos = new ArrayList<Aluno>();

public static void cadastrarAluno(Aluno a) {
alunos.add(a);
}

public static Aluno buscaAluno(double RA) {

for (Aluno a : alunos) {
if (a.getRA()==RA) {
return a;
}
}
return null;
}

public static String imprimeTodosAlunos() {
String saida = "";
for (Aluno a : alunos){
saida += "\n" + a.imprimeDadosAluno();
}
return saida;
}

public static String salvaTodosAlunos() throws FileNotFoundException, IOException {
RandomAccessFile random = new RandomAccessFile("aluno.txt", "rw");
for (int i = 0; i < alunos.size(); i = i + 9) {
random.write(alunos.indexOf(i));
}
return null;
}

public static int leTodosAlunos() throws FileNotFoundException, IOException {
int retorno = 0;
FileReader fr = new FileReader("aluno.txt");
for (int i = 0; i < alunos.size(); i++) {
retorno = fr.read();
}
fr.close();
return retorno;
}
}


Classe Aluno
public class Aluno {

private String nome;
private String cpf;
private double RA;
private String curso;

public Aluno(String nome, String cpf, double RA, String curso) {
this.nome = nome;
this.cpf = cpf;
this.RA = RA;
this.curso = curso;
}

public Aluno() {
this("","",0,"");
}


public String getNome() {
return nome;
}

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

public String getCpf() {
return cpf;
}

public void setCpf(String cpf) {
this.cpf = cpf;
}

public double getRA() {
return RA;
}

public void setRA(double RA) {
this.RA = RA;
}

public String getCurso() {
return curso;
}

public void setCurso(String curso) {
this.curso = curso;
}

public String imprimeDadosAluno() {
return "Nome do Aluno: " + this.nome + "\nCPF: " + this.cpf
+ "\nRA: " + this.RA + "\nCurso: " + this.curso + "\n==========";
}

}


Classe principal TestaAluno
import java.io.FileNotFoundException;
import java.io.IOException;
import javax.swing.JOptionPane;

public class TestaAluno {

public static void main(String[] args) throws FileNotFoundException, IOException, NumberFormatException {
Aluno aluno;
int opcao;

do {

opcao = Integer.parseInt(JOptionPane.showInputDialog(
"1 - Cadastrar Aluno\n"
+ "2 - Buscar Aluno\n"
+ "3 - Imprimir tudo\n"
+ "4 - Salvar tudo \n"
+ "5 - Ler tudo\n"
+ "6 - Sair\n\n"
+ "Escolha uma opção:"));

switch (opcao) {

case 1:
aluno = new Aluno();
aluno.setNome(JOptionPane.showInputDialog("Nome:"));
aluno.setCpf(JOptionPane.showInputDialog("CPF:"));
aluno.setRA(Long.parseLong(JOptionPane.showInputDialog("RA:")));
aluno.setCurso(JOptionPane.showInputDialog("Curso:"));

GerenciaAluno.cadastrarAluno(aluno);
break;

case 2:
double ra = Double.parseDouble(JOptionPane.showInputDialog("Digite o RA desejado:"));

aluno = GerenciaAluno.buscaAluno(ra);

if (aluno == null) {
JOptionPane.showMessageDialog(null, "Aluno não encontrado");
} else {
JOptionPane.showMessageDialog(null, aluno.imprimeDadosAluno());
}
break;

case 3:
JOptionPane.showMessageDialog(null,GerenciaAluno.imprimeTodosAlunos());
break;

case 4:
JOptionPane.showMessageDialog(null,"Arquivos Salvos"+GerenciaAluno.salvaTodosAlunos());
break;

case 5:
JOptionPane.showMessageDialog(null,GerenciaAluno.leTodosAlunos());
break;

case 6:
System.exit(0);
break;
default:

}

} while (true);

}
}



  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts