Preciso salvar uma array list dentro de um arquivo txt

1 resposta
arraylistjava
Gustavo_Beck

Estou fazendo uma Agenda telefonica, e preciso abrir um arquivo de texto para salvar um Arraylist dentro e poder modificar ele também. Estou usando a classe executavel AgendaTelefonica: `/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package agendatelefonica;

/**
*

  • @author gubec
    */
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Scanner;

/**

  • @author gubec
    */
    public class AgendaTelefonica extends Contato{

    static ArrayList listaContato;

    public static void main(String[] args) {
    
    Scanner input = new Scanner(System.in);
    
    int menuPrograma = 10;
    
    listaContato = new ArrayList<>();
     
     while(menuPrograma != 0){
         System.out.println("MENU");
         System.out.println("1- Incluir novos nomes e telefones");
         System.out.println("2- Consultar nomes existentes");
         System.out.println("3- Atualizar os dados de um contato já existente");
         System.out.println("4- Remover contato");
         System.out.println("0- Sair da aplicação\n");
         menuPrograma = input.nextInt();            
         if (menuPrograma == 1) {
             Scanner contato;
             Contato c = new Contato();
             
             System.out.println("Nome do contato: ");
             contato = new Scanner(System.in);
             c.setNome(contato.nextLine());
    
             System.out.println("Telefone  do contato: ");
             contato = new Scanner(System.in);
             c.setTelefone(contato.nextInt());
    
             
             InserirContato(c);
         } else if (menuPrograma == 2) {
             Contato c = new Contato();
             System.out.println("Informe o nome que deseja buscar: ");
             Scanner contato = new Scanner(System.in);
             c.BuscarContato(contato.nextLine());
         } else if (menuPrograma == 3) {
             Scanner contato;
             Contato c = new Contato();
             
             System.out.println("Nome do contato: ");
             contato = new Scanner(System.in);
             c.setNome(contato.nextLine());
             
             BuscarContato(c.getNome());
             
             for (Contato todos : listaContato){
                 if (todos.getNome().toUpperCase().equals(c.getNome().toUpperCase())){
                     System.out.println("Novo nome do contato: ");
                     contato = new Scanner(System.in);
                     c.setNome(contato.nextLine());
                     
                     System.out.println("Novo telefone  do contato: ");
                     contato = new Scanner(System.in);
                     c.setTelefone(contato.nextInt());
                     c.AtualizarContato(c);
                     System.out.println("Contato atualizado com sucesso.");
                 }
             }
         } else if (menuPrograma == 4) {
             Scanner contato;
             Contato c = new Contato();
             
             System.out.println("Nome do contato: ");
             contato = new Scanner(System.in);
             c.setNome(contato.nextLine());
             
             BuscarContato(c.getNome());
             
             for (Contato todos : listaContato){
                 if (todos.getNome().toUpperCase().equals(c.getNome().toUpperCase())){
                     c.RemoverContato(c);
                             
                 }
             }
         } else if (menuPrograma == 0) {
          System.exit(0);                       
         }
     }
    

    }

}E uma classe para os metodos:/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package agendatelefonica;

import static agendatelefonica.AgendaTelefonica.listaContato;
import java.util.ArrayList;

/**
*

  • @author gubec
    
    */
    
    public class Contato {
    
    private String nome;
    
    private int telefone;
    
    public String getNome() {
    
    return nome;
    
    }
    
    public void setNome(String nome) {
    
    this.nome = nome;
    
    }
    
    public int getTelefone() {
    
    return telefone;
    
    }
    
    public void setTelefone(int telefone) {
    
    this.telefone = telefone;
    
    }
    
    static void InserirContato(Contato c) {
    
    listaContato.add©;
    
    System.out.println(Contato adicionado com sucesso);
    
    }
    
    static void BuscarContato(String nome) {
    
    int posicao = 0;
    
    boolean encontrado = false;
    
    for (Contato c : listaContato){
    
    posicao++;
    
    if (c.getNome().toUpperCase().equals(nome.toUpperCase())){
    
    encontrado = true;
    
    System.out.println(Contato encontrado na posição +posicao+ da lista de contatos);
    
    System.out.println("Nome: "+c.getNome());
    
    System.out.println("Telefone : "+c.getTelefone());
    
         }
     }
     if(!encontrado){
         System.out.println("Nenhum contato encontrado com o nome '"+nome+"'");
     }
    

    }

    private static void ExibirNomeContatos() {
    
    int posicao = 0;
    
    for (Contato c : listaContato){
    
    posicao++;
    
    System.out.println(posicao+"\t"+c.getNome());
    
    }
    
    }
    

    static void AtualizarContato(Contato novo) {
    for (Contato c : listaContato){

    c.setNome(novo.getNome());
             c.setTelefone(novo.getTelefone());
    
        
     }
    

    }

    static void RemoverContato(Contato remover) {
    
    if(listaContato.size()==1){
    
    listaContato = new ArrayList<>();
    
    }else{
    
    for(int i = 0; i < listaContato.size(); i++){
    
    if (remover.getNome().equals(listaContato.get(i).getNome())){
    
    listaContato.remove(i);
    
    }
    
    }
    
    }
    
    System.out.println(Contato removido com sucesso.”);
    
    }
    

}`

Como eu faço para ler e salvar o ArrayList no arquivo txt?

1 Resposta

SkyG0D

Bem, você pode dar uma pesquisada sobre o pacote java.io, lá existem varias classes que podem fazer isso de diversas maneiras. Se quiser uma introdução básica ao pacote pode ver aqui: Manipulação de arquivos Java

Criado 19 de maio de 2020
Ultima resposta 19 de mai. de 2020
Respostas 1
Participantes 2