Olá pessoal!
Eu fiz muita pesquisa na internet e inclusive aqui dentro do fórum mas não estou conseguindo fazer a alteração de um texto dentro um arquivo.txt gerado pelo java.
Eu gostaria de por exemplo, pesquisar o Nome: Fernanda e substituilo por outro Nome ou até mesmo apaga-lo.
Acompanhem o código:
import java.util.Scanner;
import javax.swing.JOptionPane;
public class agendafatec2 {
public static void main(String args[])
{
String name = "",email = "",telefone = "";
Scanner input = new Scanner(System.in);
String resp = "0";
contatos cont = new contatos();
do{
System.out.printf(" :. Seja bem vindo a agenda 0.1 .:");
System.out.printf("\n* 1 Incluir Contato");
System.out.printf("\n* 2 Alterar Contato");
System.out.printf("\n* 3 Pesquisar Contato");
System.out.printf("\n* 4 Excluir Contato");
System.out.printf("\n* 5 Sair\n");
resp = input.nextLine();
switch(resp)
{
case "1":
{
name = JOptionPane.showInputDialog("Digite o nome do novo contato .:");
email = JOptionPane.showInputDialog("Digite o email do novo contato .:");
telefone = JOptionPane.showInputDialog("Digite o telefone do novo contato .:");
cont.AdicionaDados(name, email, telefone);
break;
}
case "2":
{
break;
}
case "3":
{
cont.Pesquisa();
break;
}
case "4":
{
break;
}
}
}while (!"5".equals(resp));
System.out.printf("Obrigado por usar a agenda");
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.Buffer;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
public class contatos {
agendafatec2 agenda = new agendafatec2();
String name,telefone,email;
ArrayList<String>Cont = new ArrayList<String>();
ArrayList<String>Email = new ArrayList<String>();
ArrayList<String>Telefone = new ArrayList<String>();
public void AdicionaDados(String name,String email,String telefone)
{
Cont.add(name);
Cont.add(email);
Cont.add(telefone);
try{
File file = new File("contatos.txt");
FileWriter writer = new FileWriter(file,true);
BufferedWriter buffer = new BufferedWriter(writer);
buffer.newLine();
buffer.newLine();
buffer.write("Nome: "+name);
buffer.newLine();
buffer.write("Email do Contato "+email);
buffer.newLine();
buffer.write("Telefone do Contato "+telefone);
buffer.close();
}
catch(IOException e){
e.printStackTrace();
}
System.out.println("Contato Adicionado Com Sucesso!");
System.exit(0);
}
public void procuraArquivo() throws Exception{
BufferedReader b = new BufferedReader(new FileReader("contatos.txt"));
StringBuffer textoDoArquivo = new StringBuffer();
String linha = null;
while((linha = b.readLine()) !=null){
textoDoArquivo.append(linha);
}
System.out.print("Digite a letra a ser pesquisada: ");
String palavra = new Scanner(System.in).next();
Matcher m = Pattern.compile(palavra).matcher(textoDoArquivo);
int numeroDeOcorrencias = 0;
while (m.find()){
numeroDeOcorrencias++;
}
System.out.println("Total de palavras encontradas: " + numeroDeOcorrencias);
b.close();
}
public void Pesquisa() {
File bd = new File ("contatos.txt");
int flag=0;
if (bd.exists()){
try{
FileReader fr = new FileReader(bd);
BufferedReader ler = new BufferedReader (fr);
String temp="", a="", nome="";
nome = JOptionPane.showInputDialog("Digite o Nome:");
while ((temp=ler.readLine())!=null){
a += temp+"\n";
if (temp.equals("Nome: "+nome))
flag = 1;
}
if (flag == 1)
JOptionPane.showMessageDialog(null,a);
else
JOptionPane.showMessageDialog(null,"Nome não encontrado");
}
catch (IOException ex){
JOptionPane.showMessageDialog(null, "Erro na leitura");
}
}
System.exit(1);
}
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JOptionPane;
public class altera{
public void alteracao(String nome,String nomealterado,String temp,String a){
File bd = new File ("contatos.txt");
int flag=0;
if (bd.exists()){
try{
FileReader fr = new FileReader(bd);
BufferedReader ler = new BufferedReader (fr);
nome = JOptionPane.showInputDialog("Digite o Nome:");
nomealterado = JOptionPane.showInputDialog("Digite o novo nome do contato.:");
while ((temp=ler.readLine())!=null){
a += temp+"\n";
if (temp.equals("Nome: "+nome))
flag = 1;
}
if (flag == 1){
FileWriter file = new FileWriter("contatos.txt",true);
BufferedWriter buffer = new BufferedWriter(file);
buffer.write("Nome: "+nomealterado);
}
}
catch (IOException ex){
}
}
}
}