Salvar algum tipo de coleção em arquivo txt.. como faz?

Bom dia gente!!

então…

minha duvida eh como fazer… um local onde o usuario vai selecionas linhas do banco de dados… essas linhas viram uma list qualquer… essa list eu preciso salvar em arquivo txt… para que outra aplicação possa subir utilizando essa arquivo…

no caso é… o usuario cadastra registro… depois seleciona o que ele quer utilizar… salva… passa o arquivo para outro dispositivo… que vai ter uma aplicação que vai utilizar essa arquivo…

confuso neh? … ms eh mais ou menos isso…

mt obrigado pela atenção!

[]'s

Renato

oi

você não poderia usar properties?

abs

o que é isso??

talvez eu possa usar ^^

valeu!

oi

dá uma lida e veja se ajuda

http://www.guj.com.br/article.show.logic?id=35

legal… ms acho que não é isso que eu preciso… ms pelo menos aprendi coisa nova \o/

intaum acho q eu não fui claro… vo tentar exemplificar melhor…

exemplo:

eu seleciono alguns usuario do meu banco… e em cada registro tem id, nome, login, senha.

tem como esses dados serem gravados em um txt… tipo… cada linha um registro… para que eu possar usar depois utilizando talvez a classe que controla arquivo do java ( que eu nao sei ql é… mas vou estudar depois)??

http://www.developer.com/xml/article.php/1377961/Serializing-Java-Objects-as-XML.htm

Voce poderia importar isto para XML? caso o outro programe aceite o xml, seria a melhor opcao.

Mas caso não possa ser xml, então você precisa definir primeiro como vai ser o layout de arquivo, voce quer tipo posicional? com delimitador? exemplo

Posicional Codigo Nome Idade 1 MARIA 18 2 JOAO 17

Delimitado pelo caracter ; Codigo;Nome;Idade 1;MARIA;18 2;JOAO;17

Em ambos os casos voce pode criar classes para isto, ou usar algo que alguem ja fez… !!!
No java tem varias classes que pode te ajudar com isto
Ex. StringTokenizer, Expressao Regular, etc

Caso fique confuso, então seria interessante detalhar mais que tipo de arquivo e layout que pretende importar/exportar

Att

opa astork,

é isso mesmo que eu qru… acho que posicional serve…

por ond eu começo??

i tipo qndo eu for usar no outro aplicativo… tem como fazer uma especia de select pelo codigo??

mt obrigado!!

Vou dar um exemplo. Note que a classe deve implementar Serializable.

TesteXML.java

import java.util.*;
import java.io.*;
import java.beans.*;

class TesteXML {
    public static void main(String[] args) throws IOException {
        List<Cliente> clientes = new ArrayList<Cliente>();
        clientes.add (new Cliente ("Selma Blair", 100.00));
        clientes.add (new Cliente ("Colbie Caillat", 200.00));
        clientes.add (new Cliente ("Ashley Olsen", 300.00));
        // Vamos imprimir a lista de objetos.
        System.out.println (clientes);
        // Efetuar a serializacao dos dados
        XMLEncoder xenc = new XMLEncoder (new BufferedOutputStream (new FileOutputStream ("teste.xml")));
        xenc.writeObject (clientes);
        xenc.close();
        // Agora iremos reler os dados em uma outra lista.
        List<Cliente> novosClientes;
        XMLDecoder xdec = new XMLDecoder (new BufferedInputStream (new FileInputStream ("teste.xml")));
        novosClientes = (List<Cliente>) xdec.readObject();
        xdec.close();
        // Vamos imprimir a lista de objetos.
        System.out.println (novosClientes);
    }
}

Cliente.java

import java.io.Serializable;

public class Cliente implements Serializable {
    public String getNome() { return nome; }
    public double getSaldo() { return saldo; }
    public void setNome(final String nome_) { nome = nome_; }
    public void setSaldo(final double saldo_) { saldo = saldo_; }
    public Cliente() { }
    public Cliente (final String nome_, final double saldo_) { nome = nome_; saldo = saldo_; }
    @Override public String toString() { return nome + ":" + saldo; }
    private String nome;
    private double saldo;
}

Compile com:
javac Cliente.java TesteXML.java

Rode com:
java -cp . TesteXML

Ele deve imprimir:

[Selma Blair:100.0, Colbie Caillat:200.0, Ashley Olsen:300.0]
[Selma Blair:100.0, Colbie Caillat:200.0, Ashley Olsen:300.0]

E o arquivo XML (teste.xml) gerado deve ser algo parecido com:

<?xml version="1.0" encoding="UTF-8"?>
<java version="1.6.0_14" class="java.beans.XMLDecoder">
 <object class="java.util.ArrayList">
  <void method="add">
   <object class="Cliente">
    <void property="nome">
     <string>Selma Blair</string>
    </void>
    <void property="saldo">
     <double>100.0</double>
    </void>
   </object>
  </void>
  <void method="add">
   <object class="Cliente">
    <void property="nome">
     <string>Colbie Caillat</string>
    </void>
    <void property="saldo">
     <double>200.0</double>
    </void>
   </object>
  </void>
  <void method="add">
   <object class="Cliente">
    <void property="nome">
     <string>Ashley Olsen</string>
    </void>
    <void property="saldo">
     <double>300.0</double>
    </void>
   </object>
  </void>
 </object>
</java>

eu copiei e tah dando execao

vo colar aki

[Selma Blair:100.0, Colbie Caillat:200.0, Ashley Olsen:300.0]
java.lang.IllegalAccessException: Class sun.reflect.misc.Trampoline can not access a member of class textxml.Cliente with modifiers "public"
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement ArrayList.add(Cliente);
Continuing ...
java.lang.IllegalAccessException: Class sun.reflect.misc.Trampoline can not access a member of class textxml.Cliente with modifiers "public"
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement ArrayList.add(Cliente);
Continuing ...
java.lang.IllegalAccessException: Class sun.reflect.misc.Trampoline can not access a member of class textxml.Cliente with modifiers "public"
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement ArrayList.add(Cliente);
Continuing ...

o legal q a selma vai lol

ms e c eu quisesse igual o primeiro exemplo que vc deu?? sem ser xml? … como eu faria?

mt obrigado pela atencao!

A classe textxml.Cliente tem de estar no classpath também.

tipo… eu fiz pelo netbeans… tah td no msm pacote…

i eu não tenho o conceito de classpath formado lol

pode me xingar

Tenta algo assim:

[code]
//Supondo uma collection de Strings
//usa foreach
FileWriter fileWriter = new FileWriter(“dados.txt”);
for(String s : list){
//pula linha
s += “\n”;
fileWriter.write(s);

}

fileWriter.close();[/code]

Abraços.

e se for uma collection de uma classe qualquer sem ser string??

seria do msm jeito?

valeu!

Sim, ele aceita sendo do tipo int ou String.

Abraços.