Duvida String x StringBuilder  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
rhpestana
Entusiasta Java

Membro desde: 12/09/2008 09:08:32
Mensagens: 15
Offline



Pessoal,

Tenho uma classe que lê um arquivo texto e fornece um resumo dos dados lidos. Nessa minha classe, uso um objeto do tipo String para receber a linha lida e na sequencia uso o metodo split para atribuir os valores de cada campo (esse arquivo é delimitado por ",").

Bom, minha duvida é a seguinte, como String é um objeto imutável e o java criar várias instâncias em memória, e meu arquivo normalmente tem muitas linhas. Seria correto eu alterar essa minha classe para trabalhar com StringBuilder? Se sim, como eu faria o split de cada linha, já o StringBuilder não possui esse método??

[]s a todos,
Djonatah
JavaGuru
[Avatar]

Membro desde: 11/05/2007 15:38:09
Mensagens: 204
Localização: São Bento do Sul - SC
Offline

Seria correto?

Seria.

Como fazer? Boa pergunta, eu olhei a documentacao da SUN, e pelos dados de lah voce mesmo pode fazer o split no braco, mas ach oque deve haver algo melhor, e epronto.
Abracos.

--------------------------------------------------
" Daria tudo o que sei, pela metade do que ignoro " - Descartes

" Tudo tem seu tempo, cada coisa tem sua ocasiao " - Eclesiastes 3
[MSN]
jolivier
JavaChild
[Avatar]

Membro desde: 04/08/2008 11:24:50
Mensagens: 101
Offline

O conceito de imutabilidade e muito relevante precisa conhecer bem oque defini um objeto imutavel colaca seu codigo para analise, provavelmente da forma que vc esta falando não havera problemas de imutabilidade
repito, precisa atentar bem com esse conceito.

Jolivier
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

Se você não for carregar o arquivo inteiro em memória, não será um problema usa somente Strings.

Leia uma linha, faça as operações que quiser nela, depois descarte a linha e os objetos criados, leia a próxima linha e repita até o fim. O descarte é automático casos eles sejam criados dentro de um escopo já passado.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
f-schmitt
JavaChild
[Avatar]

Membro desde: 29/07/2006 08:25:22
Mensagens: 116
Localização: Gravatal
Offline

Eu acredito que o GarbageCollector vai tratar disso, me corrijam se estiver enganado.....

Java, Clarion, HB++, PostgreSQL
[MSN]
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

Dei uma olhada na implementação da Sun do String.split()

Ele funciona usando o método String.subSequence(inicio, fim), passando os índices de começo e o fim de cada substring encontrada dentro da string sofrendo o split.

O subSequence não copia novas sequencias de caracteres, ele somente altera os índices de começo e fim da String, e as passa de volta.

Em termos simples:

As Strings retornadas pelo split na verdade são a mesma String. O consumo de memória é quase tão pequeno quanto como se fosse uma String só.

Tudo isso graça aos poderes imutáveis das Strings.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
rhpestana
Entusiasta Java

Membro desde: 12/09/2008 09:08:32
Mensagens: 15
Offline

bom dia,

Obrigado a todos pela orientação.

[]s

hugov
JavaEvangelist

Membro desde: 30/08/2004 14:14:23
Mensagens: 357
Offline

Não entendi muito bem a sua dúvida.

Mas você poderia fazer assim:


Vitor Hugo
Analista Desenvolvedor Java
WebLog : http://emdia.wordpress.com/
Skype : hugov_br
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team