Problema com List e grande volume de registros

Oi pessoal, tou precisando de um Help.

Tenho algumas informações em um BD e preciso gerar um TXT c elas.
Eu busco essas informações e carrego em um List.

O problema é q qdo essas informações são muitooos registros, tipo 500.000,
a List da pau.

Da:
Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.(DataBufferInt.java:41)
at java.awt.image.Raster.createPackedRaster(Raster.java:458)
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
at java.awt.image.BufferedImage.(BufferedImage.java:321)
at com.sun.java.swing.plaf.windows.XPStyle$SkinPainter.createImage(XPStyle.java:568)
at sun.swing.CachedPainter.paint0(CachedPainter.java:124)
at sun.swing.CachedPainter.paint(CachedPainter.java:96)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkin(XPStyle.java:518)

Alguem sabe como eu posso resolver isso???

Desde ja muito obrigado a todos.

touresfinge
O seu problema não está no List… acontece que a VM não consegue mais alocar espaço na sua heap…
no eclipse, vc pode editar o “Run” da sua aplicação…
tem lá uns argumentos vc pode adicionar em “VM Arguments”:

-Xms[valor] é um parâmetro da VM.

Isso mesmo kra, muitooo obrigaduuuuu!

Resolvido eu aumentei a heap!

Ja pensou em paginar essa busca, otimizar a interação com arquivos com BufferedWriter, etc?

Afinal, provavelmente no servidor de produção você terá de aumentar o tamanho a heap também, e a tendência da massa de dados é sempre crescer.

Gostaria de aprender isso sim, vc onde eu consigo um bom material sobre?

No Oracle vc consegue implementar uma paginação com ROWNUM.
No MySql isso pode ser feito com LIMIT - OFFSET

http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedWriter.html
http://www.exampledepot.com/egs/java.io/AppendToFile.html

[quote=Rafael Nunes]http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedWriter.html
http://www.exampledepot.com/egs/java.io/AppendToFile.html[/quote]

tbm acho que o buffer é mais indicado para este caso!

[quote=touresfinge]Oi pessoal, tou precisando de um Help.

Tenho algumas informações em um BD e preciso gerar um TXT c elas.
Eu busco essas informações e carrego em um List.

O problema é q qdo essas informações são muitooos registros, tipo 500.000,
a List da pau.

Da:
Exception occurred during event dispatching:
java.lang.OutOfMemoryError: Java heap space
at java.awt.image.DataBufferInt.(DataBufferInt.java:41)
at java.awt.image.Raster.createPackedRaster(Raster.java:458)
at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1015)
at java.awt.image.BufferedImage.(BufferedImage.java:321)
at com.sun.java.swing.plaf.windows.XPStyle$SkinPainter.createImage(XPStyle.java:568)
at sun.swing.CachedPainter.paint0(CachedPainter.java:124)
at sun.swing.CachedPainter.paint(CachedPainter.java:96)
at com.sun.java.swing.plaf.windows.XPStyle$Skin.paintSkin(XPStyle.java:518)

Alguem sabe como eu posso resolver isso???
[/quote]

Esse erro ai é no look and feel. Parece que está tentando criar uma imagem demaziado grande.
Quanto a lista de muitos dados simplesmente não use. Use o recordSet directamente.
Em alternative implemente um objeto com a interface List que encapsula um RecordSet