jct
Maio 5, 2013, 9:57am
#1
Oi pessoal, estou precisando de uma ajuda, estuo mexendo com RMI, manipulando um arquivo txt no java, ja fiz uma função que grava e uma função que lista todos os dador gravados no txt, mas agora não estou mais conseguindo fazer, ja pesquisei um monte e todas as soluções que achei nenhuma resolveu meu problema, gostaria de de saber uma função que edita os dados contidos no txt e uma que e uma que recupera os dados que foram alterados. Se alguem puder me ajudar eu agradeceria muito.
[code]package inicial;
import java.io .;
import java.rmi. ;
import java.rmi.server.*;
public class EnvioMensagemImpl extends UnicastRemoteObject implements EnvioMensagem {
public String name;
public EnvioMensagemImpl() throws RemoteException {
name = null;
}
public String getDescription() throws RemoteException {
System.out.println("Cliente invocou o metodo getDescription()");
return name;
}
public void setDescription(String n) throws RemoteException {
name = n;
System.out.println("Cliente invocou o metodo setDescription()");
System.out.println("Mensagem recebida: " + name);
}
public String getCadastrar() throws RemoteException {
System.out.println("Cliente invocou o metodo getCadastrar()");
return name;
}
public void setCadastrar(String n) throws Exception {
System.out.println("\nCliente invocou o metodo setCadastrar()");
File arquivo = new File("dados.txt");
try {
BufferedWriter escritor = new BufferedWriter(new FileWriter(arquivo, true));
String quebraDeLinha = System.getProperty("line.separator");
escritor.write("Mensagem: " + name + ";" +quebraDeLinha);
escritor.close();
} catch (IOException e) {
System.out.println("Erro ao gravar no arquivo txt. Motivo: "+e.getMessage());
e.printStackTrace();
}
System.out.println("Mensagem gravada foi" + "\n" + name);
}
public String getListar() throws Exception{
System.out.println("O cliente invocou o metodo getListar()");
return name;
}
public void setListar(String n) throws Exception{
System.out.println("\nO cliente invocou o metodo setListar()");
System.out.println("Os dados contidos no txt atualmente sao:");
File arquivo = new File("dados.txt");
BufferedReader leitor = new BufferedReader(new FileReader(arquivo));
String atributo;
while ((atributo = leitor.readLine()) != null){
System.out.println(atributo);
}
leitor.close();
}
public String getAlterar() throws Exception{
System.out.println("\nO cliente invocou o metodo getAlterar()");
return name;
}
public void setAlterar(String n) throws Exception{
File arquivo = new File("dados.txt");
BufferedReader leitor = new BufferedReader(new FileReader(arquivo));
BufferedWriter leitor = new BufferedWriter(new FileWriter(arquivo,false));
}
public String getRecuperar() throws Exception{
System.out.println("\nO cliente invocou o metod getRecuperar()");
return name;
}
public void setRecuperar(String n) throws Exception{
}
}
[/code]
Para editar o txt a única forma q conheço seria transferir o conteúdo para uma variável e gravá-lo novamente, não sei se existe outra forma. Agora, sobre recuperar os dados alterados, vc quer recuperar o txt antes da alteração? Se for isso a única solução q vejo seria fazer um backup do txt antigo.
jct
Maio 7, 2013, 9:23am
#3
Teria um exemplo de como eu faço pra transferir todo o conteudo do txt pra uma viariavel?
O que precisaria na recuperação acredito que seja mais facil, somente recuperar o ultimo dado que foi editado, mas acho que pode ser o txt antigo tbm, se tiver um exemplo de como fazer isso tbm seria muito bom, pra mim ter uma base de como fazer.
Dá uma olhada no post abaixo, tem muita coisa a respeito disso:
http://www.guj.com.br/java/246484-abrir-arquivo-txt-com-o-java
jct
Maio 7, 2013, 10:14am
#5
Beleza, agora to no estagio, mas a tarde eu do uma olhada, valeu
jct
Maio 7, 2013, 3:58pm
#6
Cara, eu li, mas nao me ajudou, eu ja consegui acessar o arquivo, gravar dados nele e listar todo o conteudo do arquivo, só nao estou conseguindo editar uma linha a minha escolha no txt e recuperar o ultimo dado alterado.
Vou postar o codigo atual como ele está pra ver se consegue me ajudar.
[code]package inicial;
import java.io .;
import java.rmi. ;
import java.rmi.server.*;
public class EnvioMensagemImpl extends UnicastRemoteObject implements EnvioMensagem {
public String name;
public EnvioMensagemImpl() throws RemoteException {
name = null;
}
public String getDescription() throws RemoteException {
System.out.println("Cliente invocou o metodo getDescription()");
return name;
}
public void setDescription(String n) throws RemoteException {
name = n;
System.out.println("Cliente invocou o metodo setDescription()");
System.out.println("Mensagem recebida: " + name);
}
public String getCadastrar() throws RemoteException {
System.out.println("Cliente invocou o metodo getCadastrar()");
return name;
}
public void setCadastrar(String n) throws Exception {
System.out.println("\nCliente invocou o metodo setCadastrar()");
File arquivo = new File("dados.txt");
try {
BufferedWriter escritor = new BufferedWriter(new FileWriter(arquivo, true));//true para gravar no mesmo arquivo
String quebraDeLinha = System.getProperty("line.separator");
escritor.write("Mensagem: " + name + ";" +quebraDeLinha);
escritor.close();
} catch (IOException e) {
System.out.println("Erro ao gravar no arquivo txt. Motivo: "+e.getMessage());
e.printStackTrace();
}
System.out.println("Mensagem gravada foi" + "\n" + name);
}
public String getListar() throws Exception{
System.out.println("O cliente invocou o metodo getListar()");
return name;
}
public void setListar(String n) throws Exception{
System.out.println("\nO cliente invocou o metodo setListar()");
System.out.println("Os dados contidos no txt atualmente sao:");
File arquivo = new File("dados.txt");
BufferedReader leitor = new BufferedReader(new FileReader(arquivo));
String atributo;
while ((atributo = leitor.readLine()) != null){
System.out.println(atributo);
}
leitor.close();
}
public String getAlterar() throws Exception{
System.out.println("\nO cliente invocou o metodo getAlterar()");
return name;
}
public void setAlterar(String n) throws Exception{
File arquivo = new File("dados.txt");
File arquivo1 = new File("dados1.txt");
BufferedReader leitor = new BufferedReader(new FileReader(arquivo));
String atributo;
while ((atributo = leitor.readLine()) != null){
}
leitor.close();
}
public String getRecuperar() throws Exception{
System.out.println("\nO cliente invocou o metod getRecuperar()");
return name;
}
public void setRecuperar(String n) throws Exception{
}
}
[/code]
Você não poderia carregar essas informações do .txt em uma variável e joga-la em um jTextArea?
No jTextArea você pode modificar o texto, e salvar o arquivo com o mesmo nome.
jct
Maio 8, 2013, 8:39am
#8
O TextArea abre uma janela pra inserir os dados através do teclado né?
Isso mesmo. É só ler os dados do arquivo, joga-los em uma variável, e “setar” o texto TextArea com a variável.
Beleza, depois posta ae que você conseguiu.
jct
Maio 8, 2013, 9:38am
#12
Sim, se eu conseguir eu posto o código completo aqui.