14 de fev. de 2014

Como passar um ArrayList para um arquivo texto Java

Nesse tutorial bem simples, estaremos vendo como é possível salvar o conteúdo de um ArrayList para um arquivos de texto no Java e vice-versa. Para isso utiliza-se as seguintes classe:

File: Terá a função de ciar o arquivo;
BufferedWriter, FileWriter: Terão a função de escrever no arquivo.
BufferedReader: Terá a função de ler o arquivo para colocar seu conteúdo em outro Array

Para saber mais sobre leitura e escritas de arquivos, clique aqui.

Veja também:

Inicialmente deve-se criar um ArrayList, na qual se deseja salvar o conteúdo.

 ArrayList<String> contatos = new ArrayList<String>();

Após isso deve-se criar um objeto da classe File.

File arquivo = new File("tutorial.txt");     //criar o objeto file
            if (arquivo.exists() != true) {         //se o arquivo tutorial.txt não existir, ele o cria
                arquivo.createNewFile();       
            }


Agora é preciso criar um objeto da classe FileWriter e da classe BufferedWriter:

FileWriter escre = new FileWriter(arquivo);
BufferedWriter escrever = new BufferedWriter(escre);

Ao final devemos criar um loop for que irá percorrer todo o Array e salvará cada linha no arquivo.

  for (int i = 0; i < listaContatos.size(); i++) {
                escrever.write(listaContatos.get(i));
                escrever.newLine();
            }


Mas para que o arquivo seja lido e seu conteúdo coloca em outro Array, devemos fazer mais algumas coisas:

Criação do BufferedReader para ler o arquivo. 

 BufferedReader ler = new BufferedReader(new FileReader("tutorial.txt")); //ler o tutorial.txt
            for (int i = 0; i < listaContatos.size(); i++) {  //percorre todo o array
                obterListaContato.add(ler.readLine());
            }


Veja abaixo o código completo e comentado:

 public static void main(String[] args) {
        ArrayList<String> listaContatos = new ArrayList<String>();
        ArrayList<String> obterListaContato = new ArrayList<String>();
        listaContatos.add("João");
        listaContatos.add("Maria");
        listaContatos.add("Sem nome");
        try {

            File arquivo = new File("tutorial.txt");  //criação do file arquivo.txt, ficará no local do projeto
            if (arquivo.exists() != true) {  //só cria outro arquivo, se não houver um igual.
                arquivo.createNewFile();
            }

            FileWriter escre = new FileWriter(arquivo, true);
            BufferedWriter escrever = new BufferedWriter(escre);

            for (int i = 0; i < listaContatos.size(); i++) {  //percorre todo o array
                escrever.write(listaContatos.get(i));      //obtem o valor i do array e salva no arquivo com o método writer
                escrever.newLine();           //pula uma linha, assim cada posição do array é salva em uma linha
            }
            escrever.close();          // os objetos devem ser fechados para que a edição seja salva
            escre.close();

            BufferedReader ler = new BufferedReader(new FileReader("tutorial.txt"));

            for (int i = 0; i < listaContatos.size(); i++) {  //percorre todo o array
                obterListaContato.add(ler.readLine());       //adicionar cada linha ao arquivo
            }
            for (int i = 0; i < obterListaContato.size(); i++) {
                System.out.println(" = " + obterListaContato.get(i));
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }

Nenhum comentário:

Postar um comentário