[Resolvido] Exportando TXTs com Java

Iniciado por ronaldoo, 20 de Fevereiro de 2008, 18:35

tópico anterior - próximo tópico

ronaldoo

Salve galera ubunteira!
Estou com  uma duvidazinha básica em programação com Java. Como eu faço pra salvar dados de variáveis em arquivos .txt?
E se for possível, como se faz pro Java ler o arquivo e adicionar as outras linhas no final?

Obrigado desde já, abraço!

brunei

Fiz uma busca rápida na internet com as palavras-chaves manipulacao arquivos java. Achei alguns tutoriais úteis:

Aprendendo a manipular arquivos
http://www.guj.com.br/java.artigo.13.1.guj

Bruno Ribeiro

ronaldoo

Citação de: brunei online 21 de Fevereiro de 2008, 16:16
Fiz uma busca rápida na internet com as palavras-chaves manipulacao arquivos java. Achei alguns tutoriais úteis:

Aprendendo a manipular arquivos
http://www.guj.com.br/java.artigo.13.1.guj



Pois é brunei, eu tentei seguir este tutorial antes de postar aqui mas não consegui... Fica dando erros e não consigo resolver :(
Não tem outra maneira? Valeu mais uma vez!

brunei

Sem problemas.

Explique o que você está tentando fazer precisamente. Qual é o problema a ser solucionado? Que valores quer gravar?

Se já tiver algum código implementado, mesmo que esteja com problema, será de grande ajuda, então poste aqui (se for muito grande, me avisa que te passo meu e-mail para você enviar).
Bruno Ribeiro

ronaldoo

@Brunei
Aí vai o code, aproveitando como faço pra fazer ele inserir no Teste.txt sem substituir o texto já existente? Tipo deixando uma linha em branco e inserindo o resto ? Valeuuu...


    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        recebe = "Nome=\""+tfNome.getText()+"\" Idade=\""+tfIdade.getText()+"\" Nickname=\""+tfNickname.getText()+"\"";
        try{
            FileOutputStream f = new FileOutputStream("Teste.txt");
            ObjectOutputStream s = new ObjectOutputStream(f);
            s.writeObject(recebe);
            s.flush();
            f.close();
            barraStatus.setText("'Teste.txt' criado com sucesso.");
            taMostra.setText(recebe);
        } catch(Exception e) {
            System.out.println(e);
        }
       
       
    }


Obrigadão mais uma vez!

brunei

Olhe esse exemplo de como gravar um texto no final de um arquivo de texto existente:

import java.io.*;

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
BufferedWriter arquivo;

String valores = "Nome=\"" + tfNome.getText() + "\" Idade=\"" + tfIdade.getText() +
"\" Nickname=\"" + tfNickname.getText() + "\"";
try {
// abre o arquivo de texto para acrescentar linhas
arquivo = new BufferedWriter(new FileWriter("meu_arquivo.txt", true));

// escreve a linha de texto
arquivo.write(valores);

// insere uma quebra de linha
arquivo.newLine();

// força a gravação dos dados em disco
arquivo.flush();

arquivo.close();
}
catch (IOException erro)
{
// trata o erro
}
finally {
// garante o fechamento do arquivo
if (arquivo != null) arquivo.close();
}
        }


Consulte a documentação do Java sobre as classes FileWriter e BufferedWriter para maiores detalhes.

PS: se houver algum erro no código, por favor me avise. Eu escrevi isso num computador onde eu não podia testar.
Bruno Ribeiro

ronaldoo

@brunei
Bom testei em casa ao meio dia, mas não tive muito tempo então só pus ali e dei fix imports, e dá incompatible types... Mas acho que é porque eu criei a variável "arquivo" do tipo String e deveria ser boolean, ou não?! :/

Se você testar e souber alguma novidade me avisa por favor, vou tentar consertar à noite.

Obrigadão aí cara! Fuizz..

brunei

#7
Olá ronaldoo,

Deu erro de tipos imcompatíveis onde? Note que você tinha uma variável chamada recebe (que suponho que era um atributo da classe onde o método estava) e troquei ele pela variável arquivo.


--- Correção --

Eu mudei para valores!
Bruno Ribeiro

ronaldoo

#8
---- Editado ----
Consegui fazer o que eu queria, que era abrir o arquivo de texto e editá-lo adicionando os valores da variável ao fim do documento com o código que o usuário brunei postou ali acima.

Obrigado brunei!