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:
- Criação, leitura e escrita de arquivos de texto em Java
- Adicionar conteúdo em um arquivo Java sem apagar conteúdo existente
- Como excluir uma linha de um arquivo de texto em Java
- Como criar ArrayList de objetos em Java
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();
}
}