RandomAccessFile

5 respostas
S

Olá pessoal sou novato neste forum e gostaria q me ajudaseem
Já fiz muita pesquisa e até agora nada de solução.
O problema é o seguite:
Tenho uma classe Aluno com os seguites atributos nome, sobrenome e código e adicionei essa mesma classe Aluno em um ArrayList , aí é que começa o meu problema, quero escrever esse arraylist no ficheiro usando o RandomAccessFile.
Até agora não sei se é possivel fazer isso ou não

O código está abaixo:

import java.util.*;   
import java.io.*;   
public class ProgramaAluno{   
  public static void main(String[] args){   
  
    Aluno a1 = new Aluno("Sebastiao Eugenio","Paizinho",20);   
    //Aluno a2 = new Aluno("David Pedro","Adao",17);   
    //Aluno a3 = new Aluno("Celestino Paulo","Tino",20);   
       
    ArrayList<Aluno> lista = new ArrayList<Aluno>();   
    lista.add(a1);   
    //lista.add(a2);   
    //lista.add(a3);   
       
    try{   
      RandomAccessFile random = new RandomAccessFile("conteudo.dat","rw");   
      //random.writeObject(lista);   
      random.close();   
       
    }   
    catch(IOException e){   
       
       
    }   
       
    for(Aluno aluno : lista){   
        System.out.println("Nome:  "+aluno.nome + "   SobreNome:  "+aluno.sobrenome +"   Code:  "+aluno.codigo);   
       
       
    }   
       
  
       
  }   
  
}   
  
class Aluno implements Comparable<Aluno>{   
String nome;   
String sobrenome;   
int codigo;   
public Aluno(String n, String s, int num){   
this.nome = n;   
this.sobrenome = s;   
this.codigo = num;   
  
}   
  
public int compareTo(Aluno a){   
  
return 2;   
}   
  
}
:shock:

5 Respostas

A

faz assim :

public static void main(String[] args) throws FileNotFoundException, IOException {

        Aluno a1 = new Aluno("Sebastiao Eugenio", "Paizinho", 20);
        ArrayList<Aluno> listaAluno = new ArrayList<>();
        listaAluno.add(a1);

            //supondo que o caminho ate o arquivo exista....
            RandomAccessFile arquivo = new RandomAccessFile("C:\\java\\conteudo.dat", "rw");

            for (Aluno aluno : listaAluno) {
                String linha = "Nome:  "
                        + aluno.getNome() + "   SobreNome:  "
                        + aluno.getApelido() + "   Code:  "
                        + aluno.getIdade();
                arquivo.write(linha.getBytes());
            }
            arquivo.close();
    }
V

Poderia salvar o arraylist como o colega acima disse, ou poderia serializar ele com o ObjectOutputStream se for o caso de precisar recuperar esse arraylist posteriormente apartir do arquivo.

S

obrigadão por responder a minha dúvida aix e viniciusalvess.

aix, o seu exemplo funcionou perfeitamente só que agora não sei como fazer leitura para vizualizar os dados do ficheiro

A

sebastiao39:
obrigadão por responder a minha dúvida aix e viniciusalvess.

aix, o seu exemplo funcionou perfeitamente só que agora não sei como fazer leitura para vizualizar os dados do ficheiro

ahhh barbada, segue o código.

public class Estudos {

    public static final String FILENAME = "C:\\java\\conteudo.dat";

    public static void main(String[] args) throws FileNotFoundException, IOException {

        Aluno a1 = new Aluno("Sebastiao Eugenio", "Paizinho", 20);
        ArrayList<Aluno> listaAluno = new ArrayList<>();
        listaAluno.add(a1);

        //supondo que o caminho ate o arquivo exista....
        RandomAccessFile arquivo = new RandomAccessFile(FILENAME, "rw");

        for (Aluno aluno : listaAluno) {
            String linha = "Nome:  "
                    + aluno.getNome() + "   SobreNome:  "
                    + aluno.getApelido() + "   Code:  "
                    + aluno.getIdade();
            arquivo.write(linha.getBytes());
        }

        arquivo = abrirArquivo(FILENAME, "r");

        String result = arquivo.readLine();

        System.out.println(result);

        arquivo.close();
    }

    public static RandomAccessFile abrirArquivo(String fileName, String mode) {
        RandomAccessFile randomAccessFile = null;
        try {
            randomAccessFile = new RandomAccessFile(fileName, mode);
        } catch (FileNotFoundException fileNotFoundException) {
            System.err.println("Arquivo " + fileName + "  não encontrado");
        }
        return randomAccessFile;
    }
}
S

Resolvido

Obrigado

Criado 28 de dezembro de 2011
Ultima resposta 29 de dez. de 2011
Respostas 5
Participantes 3