Leitura de TXT muito grande....  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
jopss
Java Ninja
[Avatar]

Membro desde: 13/07/2006 18:32:16
Mensagens: 281
Localização: Campo Grande/MS
Offline

Ola galera.....

Estou fazendo um sistema de busca de palavras em um arquivo gigante de texto, algo em torno de 40mg de texto puro.... o problema eh q a leitura eh mtttt lenta..... jah passei o texto para um banco de dados, mas a leitura ainda eh lenta demais..... (uso o apache derby)........ se o carregamento for direto pelo arquivo entao, demora muito mais........

O estranho eh q tenho um exemplo de um programa parecido com o que tenho que implementar, com banco de dados NFO, e a leitura neste eh instantanea, sem senhum lag....

Precisaria mostrar tal texto na tela e fazer a busca de palavras neste, "marcando" a palavra achada no texto....... uso .txt puro e jogo num JTextArea, busco a palavra e marco ela..... isto jah está pronto.. o problema está no carregamento inicial do texto...

Alguem teria alguma saida para a lentidao????

Abraços
Joao Paulo Sossoloti
jopss@hotmail.com
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline


se o carregamento for direto pelo arquivo entao, demora muito mais........


Acho que você está usando String em vez de StringBuffer. e não deve estar usando BufferedReader. Vou carregar um arquivo de 40 MB de duas maneiras (a errada e a certa) e vou lhe mostrar os resultados daqui a pouco.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline



Experimente rodar o programa acima; o método "certo" de carregar o arquivo leva 3 segundos; desisti de esperar quanto tempo para o método "errado". Como ele carrega o arquivo inteiro para a memória, é necessário passar um parâmetro para o programa Java - exemplo: -Xmx384m para reservar 384 MB de memória para o Java.
[WWW]
Raff
Virtual Machine Man
[Avatar]

Membro desde: 31/07/2006 10:31:45
Mensagens: 642
Localização: Marilia - SP / São Carlos -SP
Offline

Thingol você tem algum artigo sobre File como criar File em java
file .txt abraço !!!!!!!!!


SCJP 5.0
SCWCD 5.0
Mestrando UFSCAR...
[Email] [MSN]
Yky Mattshawn
Virtual Machine Man
[Avatar]
Membro desde: 18/12/2006 03:34:14
Mensagens: 651
Localização: São Sebastião do Caí / RS
Offline

Raff wrote:Thingol você tem algum artigo sobre File como criar File em java
file .txt abraço !!!!!!!!!


Middle...

Cara, é só você fazer:



Yky Mattshawn [ Compusoft - Desenvolvimento de Sistemas Empresariais ]
"Tudo que é ortodoxo ou heterodoxo demais gera heresia."
Bixo 2010 - Ciência da Computação - Feevale/RS e Unisinos/RS
[Email] [MSN] [ICQ]
jopss
Java Ninja
[Avatar]

Membro desde: 13/07/2006 18:32:16
Mensagens: 281
Localização: Campo Grande/MS
Offline

Poxa, vlw mesmo thingol......... um teste simples que nao tinha me passado...

Na verdade nao resolveu a situacao, mas se chegou ao exato problema. O problema não está então no carregamento do texto, mas sim NO CARREGAMENTO PELO JTEXTAREA !!

O teste deu sim 3 segundos para o carregamento do arquivo, mas em torno de 40 segundos para carregar o buffer no jTextArea......



Pode me ajudar nisso??? Seria alguma propriedade do componente??? Teria algum especifico para textos grandes???

vlw galera.
jopss [:p]
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

jopss wrote:Poxa, vlw mesmo thingol......... um teste simples que nao tinha me passado...

Na verdade nao resolveu a situacao, mas se chegou ao exato problema. O problema não está então no carregamento do texto, mas sim NO CARREGAMENTO PELO JTEXTAREA !!

O teste deu sim 3 segundos para o carregamento do arquivo, mas em torno de 40 segundos para carregar o buffer no jTextArea......



Pode me ajudar nisso??? Seria alguma propriedade do componente??? Teria algum especifico para textos grandes???

vlw galera.
jopss [:p]


Já tentou usar SwingWorker, criando uma thread separada pra carregar o texto no seu JTextArea?
Aliás, vc não precisa nem carregar tudo de uma vez, pode carregar conforme a necessidade... Afinal, vc não consegue mostrar isso tudo de uma vez só

Cássio Marques

Blog
bebad
JavaEvangelist
[Avatar]

Membro desde: 27/07/2006 19:56:35
Mensagens: 303
Offline

Mas,
como ficaria se eu quisesse achar uma palavra no meio de tudo isso?

Admin.. PATCH your box now, or DIE!!!

Oracle Certified Associate, Java SE 5/SE 6
Oracle Certified Professional, Java SE 6 Programmer
Oracle Certified Professional, Java ME 1 Mobile Application Developer
Oracle Certified Expert, Java EE6 Web Services Developer
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional, Java EE 5 Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer

representing the old school defacers brazil:
red_eye
ATH
ir4dex
hax0rs lab
IoN
r00t_system
kernel_panic

bebad was here.
nikcopernico
Smalltalk

Membro desde: 17/05/2007 18:37:28
Mensagens: 3
Offline

Tem uns algoritmos bons como Boyer-Moore

=p
bebad
JavaEvangelist
[Avatar]

Membro desde: 27/07/2006 19:56:35
Mensagens: 303
Offline

Orra irado eim,
ainda nao consegui testar mas pretendo ate o fim do dia...

valeu bro !!
fica com deus!

Admin.. PATCH your box now, or DIE!!!

Oracle Certified Associate, Java SE 5/SE 6
Oracle Certified Professional, Java SE 6 Programmer
Oracle Certified Professional, Java ME 1 Mobile Application Developer
Oracle Certified Expert, Java EE6 Web Services Developer
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional, Java EE 5 Web Component Developer
Oracle Certified Professional, Java EE 5 Business Component Developer

representing the old school defacers brazil:
red_eye
ATH
ir4dex
hax0rs lab
IoN
r00t_system
kernel_panic

bebad was here.
jopss
Java Ninja
[Avatar]

Membro desde: 13/07/2006 18:32:16
Mensagens: 281
Localização: Campo Grande/MS
Offline

Alguem teria algo sobre esse Boyer-Moore em portugues??? Funciona como??

jopss
JavaX_JavaX
Thread.start()

Membro desde: 29/10/2009 13:31:10
Mensagens: 48
Offline

jopss wrote:Ola galera.....

Estou fazendo um sistema de busca de palavras em um arquivo gigante de texto, algo em torno de 40mg de texto puro.... o problema eh q a leitura eh mtttt lenta..... jah passei o texto para um banco de dados, mas a leitura ainda eh lenta demais..... (uso o apache derby)........ se o carregamento for direto pelo arquivo entao, demora muito mais........

O estranho eh q tenho um exemplo de um programa parecido com o que tenho que implementar, com banco de dados NFO, e a leitura neste eh instantanea, sem senhum lag....

Precisaria mostrar tal texto na tela e fazer a busca de palavras neste, "marcando" a palavra achada no texto....... uso .txt puro e jogo num JTextArea, busco a palavra e marco ela..... isto jah está pronto.. o problema está no carregamento inicial do texto...

Alguem teria alguma saida para a lentidao????

Abraços
Joao Paulo Sossoloti
jopss@hotmail.com


O João blz , desculpa encomodar ai , vi que vc tbm usa o derby como banco de dados poderia me dar uma força

estou precisando carregar o banco com um arquivo texto se vc puder me ajudar ficarei grato

Abri um topico no Guj

se vc puder fazer uma visita ...

valeu

http://www.guj.com.br/posts/list/214297.java

Att Javax
JavaX_JavaX
Thread.start()

Membro desde: 29/10/2009 13:31:10
Mensagens: 48
Offline

jopss wrote:Poxa, vlw mesmo thingol......... um teste simples que nao tinha me passado...

Na verdade nao resolveu a situacao, mas se chegou ao exato problema. O problema não está então no carregamento do texto, mas sim NO CARREGAMENTO PELO JTEXTAREA !!

O teste deu sim 3 segundos para o carregamento do arquivo, mas em torno de 40 segundos para carregar o buffer no jTextArea......



Pode me ajudar nisso??? Seria alguma propriedade do componente??? Teria algum especifico para textos grandes???

vlw galera.
jopss [:p]



Não sei se vai te ajudar mas tá ai minha contribuição , espero que Seja util






labavel
JavaTeenager

Membro desde: 03/09/2009 10:27:57
Mensagens: 172
Offline


Boa Tarde JavaX_JavaX

quando eu vi o codigo e vi a linha === $DJDE$ eu me perguntei.

voce esta usando este programa na formatação de formulario EOS Mainframe Xerox para plataforma Baixa ?

ou esta usando no que e o que ele faz com o formulario ?
JavaX_JavaX
Thread.start()

Membro desde: 29/10/2009 13:31:10
Mensagens: 48
Offline

labavel wrote:
Boa Tarde JavaX_JavaX

quando eu vi o codigo e vi a linha === $DJDE$ eu me perguntei.

voce esta usando este programa na formatação de formulario EOS Mainframe Xerox para plataforma Baixa ?

ou esta usando no que e o que ele faz com o formulario ?



Bom dia!

Labavel, na verdade este programa trata um arquivo em Spool de impressão , que usa Um controle de carro MetaCoud $DJDE , Padrão Xerox


Porem esse projeto é apenas para apartir de uma chave_primaria buscar um sequencia de linha , eu capturo a linda do Pdl , ou formulario Xerox , apesar de não usar mais
essa linguagem Fdl e Pdl Padrão Xerox , esse tipo de tratamento usado pela Xerox possibilita um bom tratamente para manipulação do arquivo.

estou no momento trabalhado com as possibilidades , de novos projetos , mas devido ao pouco conhecimento em java e falta de tempo, estão parados


Att JavaX

This message was edited 1 time. Last update was at 11/08/2010 09:23:19

 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team