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?