Ler arquivos java

[b]olá pessoal estou precisando de uma ajuda tenho um codigo em java onde eu crio uma lista de alunos contendo o nome endereço e cpf, depois gravo esse arquivo no desktop até eu consigo gravar só que depois eu preciso recuperar essa lista mais não consigo ler esses arquivos de novo. Lembrando que é uma lista dinâmica. Desde já agradeço segue abaixo o codigo gravar.

[code]case 5:// gravar arquivos  
                try {  
                    FileWriter escrevendo = new FileWriter(file);  
                    BufferedWriter bufer = new BufferedWriter(escrevendo);  
  
                    if (studentsGold.getPrimeiro() != null) {  
                        iterador = studentsGold.getPrimeiro();  
                        bufer.write(studentsGold.getPrimeiro().getNome() + ";"  
                                + iterador.getEndereco() + ";"  
                                + iterador.getCpf());  
                        bufer.newLine();  
                    }  
                    while (iterador.getProximo() != null) {  
                        iterador = iterador.getProximo();  
                        bufer.write(iterador.getNome() + ";"  
                                + iterador.getEndereco() + ";"  
                                + iterador.getCpf());  
                        bufer.newLine();  
  
                    }  
  
                    bufer.flush();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
                break;  [/code]

Existe o tópico Lendo um arquivo TXT e depois guardando valores. Não serviu?

Não vii ainda esse topico não mais vou dar uma olhada.

cara não deu pra intender não é que tipo esse codigo ai eu estou granvando no desktop os nomes da seguinte forma primeiro eu gravo o nome ai ; e depois gravo endereço ; e depois CPF ai que ler esses nomes depois atribuindo eles pra mesmas variaveis String e usando o buferedReader so que não estou conseguido.

Sua pergunta está confusa: o que seria um arquivo dinâmico para você?

Qual a real necessidade de jogar esse conteúdo que já tem na aplicação para um arquivo texto?

Cara, você pode aprender a usar StringTokenizer, é simples e prático.

então é uma lista dinamica eu guardo referencia de objetos se fosse uma lista statica eu guardaria valores primitivos pra mim isso é um arquivo dinamico e a referencia de muios objetos encadeados. e pergunta em si e que estou gravando esses arquivos no desktop nome endereço cpf arquivo.csv so que o programa deve recuperar esses arquivos quando o usuario quiser acessar eles quando o usuario escolher o recuerar arquivos o programa deve ler essa lista gravada e e adicionar o nome no atriuto nome endereço no atributo endereço e cpf no atributo cpf é isso. Á isso dai é uma atividade da facul eu ja procurei muito coisa na internet so que ta tudo meio confuso por isso pesso ajuda aqui.

uma classe de aluno

public class Aluno{
  private String nome;
  private String endereco;
  private String cpf;
  
  public String getNome(){return nome;}
  public void setNome(String nome){this.nome=nome;}
  public String getEndereco(){return endereco;}
  public void setEndereco(String endereco){this.endereco=endereco;}
  public String getCpf(){return cpf;}
  public void setCpf(String cpf){this.cpf=cpf;}
  
  public static Aluno create(String nome,String endereco,String cpf){
    Aluno aluno=new Aluno();
    
    aluno.cpf=cpf;
    aluno.endereco=endereco;
    aluno.nome=nome;
    return aluno;
  }
}

uma classe util

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.List;

public class AlunoTXT{
  public static void grava(List<Aluno>alunos,String arquivo)throws Exception{
    FileOutputStream stream=new FileOutputStream(arquivo);
    
    for(Aluno a:alunos)
      stream.write(
        (a.getNome()+";"+a.getCpf()+";"+a.getEndereco()+"\n").getBytes()    
      );
    stream.flush();
    stream.close();
  }
  public static List<Aluno>recupera(String arquivo) throws Exception{
    File file=new File(arquivo);
    byte[]b=new byte[(int)file.length()];
    FileInputStream stream=new FileInputStream(file);
    List<Aluno>alunos=new ArrayList<Aluno>();
    
    stream.read(b);
    stream.close();    
    for(String linha:new String(b).split("\n")){
      String[]item=linha.split("\;");
      alunos.add(Aluno.create(item[0],item[2],item[1]));
    }
    
    return alunos;
  }
}

o teste

import java.util.List;
import java.util.ArrayList;

public class Teste{
  public static void main(String[]item)throws Exception{
    List<Aluno>alunos=new ArrayList<Aluno>();
    
    alunos.add(Aluno.create("aluno 1","rua da ajuda, 121","65712497741"));
    alunos.add(Aluno.create("aluno 2","rua da ajuda, 121","65712497741"));
    alunos.add(Aluno.create("aluno 3","rua da ajuda, 121","65712497741"));
    alunos.add(Aluno.create("aluno 4","rua da ajuda, 121","65712497741"));
    alunos.add(Aluno.create("aluno 5","rua da ajuda, 121","65712497741"));
    
    AlunoTXT.grava(alunos,"/tmp/alunos.txt");
    
    for(Aluno aluno:AlunoTXT.recupera("/tmp/alunos.txt"))
      System.out.println(aluno.getNome());
  }
}

valeu cara consegui é isso mesmo
muito obrigado

não esquece de colocar como resolvido…

valew

Pessoal fiz um pouco diferente mais esta resolvido

[code]case 6: // ler a lista gravada no desktop

				try {
					FileReader lendo = new FileReader(file);
					BufferedReader bufer = new BufferedReader(lendo);
					String ler = null;
                  
                   while ((ler = bufer.readLine()) != null) {
    						Pessoa a = new Pessoa();
    						String aa[] = ler.split(";");
    						a.setNome(aa[0]);
    						a.setEndereco(aa[1]);
    						a.setCpf(aa[2]);
    						studentsGold.inserir(a);
    					}

                    
					bufer.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			

			break;[/code]