O que é maior? xml ou txt?

Já ouvi falar em varios lugares que txt é mais leve que um xml, mas não consegui ver essa diferença, andei criando os dois tipos de arquivos com o mesmo conteudo e o tamanho é identico pros dois.

Alguem sabe me explicar se existe essa diferença?

cara, um xml é um txt…

o que dizem é que quando tu transmite dados, o xml é maior por que tudo tem que ser tagnado e formatado, com tags e abrem e fecham.
já no txt nao precisa, porém é uma bagunça tu ler um txt e buscar dados.

hum entendi, putz, mas é diferença é tão pequena, que nem compensa usar txt.
Valeu…

Se tratando em tamanho de arquivo. Fica a mesma coisa.

agora…

…trabalhar com XML é mil vezes melhor. A clareza de código é excelente, comparando com um .txt.

XML vai ser um pouco maior por causa das tags, mas fica tão mais fácil mexer com XML que compensa a pequena perda de desempenho.

se os arquivos forem estupidamente grandes até tem diferença, mas com XML você já tem toda uma API, incluido o SAX que é bem eficiente.

[]´s

Eu trabalho com arquivos txt de 300mb em média contendo aproximadamente 2.000.000 registros…ou seja…

Dizer que xml é melhor é mentira… depende da sua necessidade.

Como já disseram a diferença de tamanho é irrelevante. TXT puro pode até ser menor, mas é muito mais dificl de ler.
Então, na realidade o que interess a é o produto tamanhoxfacilidade
Se o tamanho é problema, use zip. Se está usando XML ,alémde zip vc pode usar fastinfoset (acho que é assim que se chama) que é um xml simplificado para passar a mesma informação que um xml normal, mas com menos bytes.
Quando se escolhe o formato, está-se pensando na faiclidade e no poder que ele tem para futuras alterações. XML é o padrão em todos esses casos.
txt é uma coisa do passado, afinal xml veio para substitui o txt.

Use xml à partida. Se for muito grande zip. Se for maior, use fastinfoset. Se for maior ainda, use infoset e zip (não sei se vale a pena, mas é possivel)
Se for muito maior que isso… separe em arquivos menores :wink:

Bem, como a discussão está rolando no fórum de J2ME, posso dizer que TXT é a solução adequada para uso no celular porquê:

:arrow:A tarefa de parsing do XML é mais demorada do que a de um TXT.
Embora vc encontre microparsers por aí, ainda acredito que o bom e velho TXT é mais rápido de ser parseado e recuperada informação dele, além do que ainda temos no mercado aparelhos que estão migrando de baixa performance nas suas implementações java, para aparelhos mais performáticos e parrudos que podem aguentar um parsing mais custoso como o do XML. Talvez mais 1 ano seja suficiente para dizer que temos no mercado aparelhos variados adequados para isto.

:arrow:Fazer o download do XML custa mais do que um TXT.
Se vc é rico e não tem problema em pagar por byte transmitido, use o XML.As operadoras de celular vão adorar ! Agora se a sua preocupação é justamente gastar o mínimo do seu plano contratatado (ex: 5Mb), vá de TXT.
Se for para transmitir bytes do cel para um PC, uma conexão socket seria mais adequada do que uma HTTP, pois você vai transmitir só os seus dados sem o overload imposto pelos bytes que foram a requisição HTTP.Usar HTTP é para quem não quer criar um servidor no desktop para receber estes bytes e vai de Apache,Tomcat ou algum outro servidor para receber estes dados.

[Editado]
Só complementando: Nada de usar CSV,TAB ou outro formato delimitado.
Eu tô falando no bom e velho formato concactenado (LARGURA FIXA).Ex: Para uma lista de items de 1 a 10 com Nº,Nome,Cidade ficaria assim:
001ANDRE DA PENHA SOARESSAO PAULO

Como vc definiu o formato sabe que o campo 1 começa na posição 0 e vai até a 2,e assim por diante…Fácil,fácil fazer o parsing disto em J2ME.
[/Editado]

[quote=rdgc][quote=sergiotaborda]
txt é uma coisa do passado, afinal xml veio para substitui o txt. [/quote]

Nem tanto… a maioria (se não forem todos!) sistemas de cobrança de bancos utilizam o “bom e velho” TXT, lendo e gravando os dados em determinadas posições de uma linha.

Por isso sempre sua escolha depende do seu problema…

[/quote]

Os sistemas de cobrança de bancos forem feitos no seculo passado (literalmente) e comprovam que TXT é coisa do passado.
O problema é que como existem demasiados sistemas dependendo desse formato (que aliás é horrivel e mal padronizado) mudar para xml envolve custos. Por isso que os bancos ainda não usam XML.
Mas se vc está desenvolvendo uma aplicação nova e escolher txt sobre xml, é um tiro no pé.

Eu não tinha, realmente, reparado na aplicação a J2ME , afinal a pergunta é sobre o tamanho e não sobre a transferência ou o parsing.
Se o uso é estritamente para JME então use-se DataOutputStream sobre HTTP e pronto. Não é nem txt nem xml e possivelmente é mais eficiente já que o servlet usa o mesmo conceito no DataInputStream

Bom Dia SergioBorda,
Concordo com você que txt é bem antigo e que um xml é uma meneira universal que as aplicações estão utilizando para comnunicação, alem de ser muito mais organizado.

Eu estou desenvolvendo uma aplicação pra Java ME, e estou utilizando RMI que é uma API propria para persistencia utilizando registros rsrs, que por sinal é uma maneira bem conhecida, que meu vô usava :smiley: , pros dispositivos que estou querendo rodar minha aplicação, é impossivel eu utilizar um banco melhorzinho, pois eles não suportariam.

Com relação a Http, não quero ficar fazendo varias requisições pro meu servidor, pois isso ficaria demorado, queria fazer somente uma requisição, com isso meu servidor me retornaria um xml com todas as possibilidades que o usuario poderia selecionar, por isso me veio a ideia de usar xml, pois é bem mais facil de estruturar isso.

Ai que fiquei em duvida, pois estaria trafegando uma grande quantidade de informação (não chega a ser gigante) :smiley: , mas como quero reduzir o maximo de custo de trafego, testei o txt tbm, não deu muita difereça, pela quantidade de informação que vou trafegar (nada que me de prejuizo :smiley: ).

Vou utilizar xml pra estruturar e kxml (gostei do seu desempenho) pra parsear.

Agradeço a todos pelas dicas.

[quote=vanzella]Já ouvi falar em varios lugares que txt é mais leve que um xml, mas não consegui ver essa diferença, andei criando os dois tipos de arquivos com o mesmo conteudo e o tamanho é identico pros dois.

Alguem sabe me explicar se existe essa diferença?[/quote]

Crie um TXT com conteúdo apenas Guj e depois crie um XML com Guj e veja a diferença… no primeiro o arquivo fica com 3 bytes e o segundo com 16 bytes.

Para saber qual vc vai usar, depende do sitema que vc tem, por onde vai transferir os dados, frequência etc etc etc

flw!

[quote=sergiotaborda]
txt é uma coisa do passado, afinal xml veio para substitui o txt. [/quote]

Nem tanto… a maioria (se não forem todos!) sistemas de cobrança de bancos utilizam o “bom e velho” TXT, lendo e gravando os dados em determinadas posições de uma linha.

Por isso sempre sua escolha depende do seu problema…

flw!