Website do JFileHelpers - Lib para arquivos texto em Java

Essa é minha dúvida também… É possível utilizar tipo um “step size” para ler um arquivo grande?

Grato,

Eduardo

O JFileHelpers carrega o arquivo inteiro para a memória?
Não tem como fazer um “iterator”?

De qualquer forma, é sempre possível aumentar a memória utilizada pela JVM, utilizando: -Xms??m -Xmx???m

[quote=Rubem Azenha]O JFileHelpers carrega o arquivo inteiro para a memória?
Não tem como fazer um “iterator”?

De qualquer forma, é sempre possível aumentar a memória utilizada pela JVM, utilizando: -Xms??m -Xmx???m
[/quote]

Tudo bem, podemos aumentar a memória utilizada, mas até isso tem um limite. No caso do meu teste por exemplo, tinha um arquivo de quase 14 M com uma 250000 linhas. Você transformar tudo em objetos e colocar numa lista não tem memória que agüente.

O ideal então seria ter um tipo de iterator.

Queria deixar os meus parabéns pela iniciativa! Esse é um projeto que tem utilidade :slight_smile:

Só queria saber um projeto que não tem utilidade…?

Todos projetos tem utilidade, pode não ter para ti, mas sempre é útil para alguém! :wink:

Atualmente acredito que o tamanho do arquivo é realmente um problema. Será que temos algum candidato a dar uma olhada no código e propor uma solução?

Recebi algumas propostas de ajuda, então se alguém quiser ajudar, começando por este problema, aconselho que entre no fórum:

http://forum.jfilehelpers.com

Para começarmos uma thread sobre o assunto.

Obrigado!

Só queria saber um projeto que não tem utilidade…?

Todos projetos tem utilidade, pode não ter para ti, mas sempre é útil para alguém! :wink: [/quote]

É uma opinião minha: Há pessoas que comecam a desenvolver projetos dé código aberto com intuito de aprender mais, e acho bem bacana. Porém não é muito feliz na escolha do que vai desenvolver. As vezes nem sabe bem o que quer, ou em outros casos, “copia” outro com uma única diferença com intuito de aprender. De qualquer forma merecem palmas pela vontade de aprender.

Bom, todos sabem que existem váarios projetos que são “desenvolvidos” e não sao utilizados nem por seus desenvolvedores.

Mas quero deixar claro que o que disse no post anterior: “Esse é um projeto que tem utilidade” não foi com a intenção de dizer que outros não tem. E sim que esse, de fato, tem destaque. É obvio que todos os projetos tem alguma utilidade, mesmo que seja algo reiventado.

Att,

Renan

concerveja :wink:

Mas mesmos estes… já me quebraram um galhão! Encontrar pequenas soluções prontas, mesmo que não use o projeto em si, só de ter uma classe ou um bloco de código que sirva já é excelente! Código aberto nunca é demais! E dar utilidade vai de acordo com a criatividade de cada um…

[quote=fcoury]Atualmente acredito que o tamanho do arquivo é realmente um problema. Será que temos algum candidato a dar uma olhada no código e propor uma solução?

Recebi algumas propostas de ajuda, então se alguém quiser ajudar, começando por este problema, aconselho que entre no fórum:

http://forum.jfilehelper.com

Para começarmos uma thread sobre o assunto.

Obrigado![/quote]

Eu não tenho muito tempo, mas vou investigar isto e resolver este problema, já que tenho alguma experiência com isto, acho que não vai ser tão complicado assim…

Vou dar uma investigada e fazer umas experiências, depois dou notícias por e-mail.

Há e este link ai para o forum não funfa!

Excelente idéia, parabéns pelo projeto.
Eu ja tive muitos problemas para manusear arquivos, e no proximo projeto que eu trabalhar eu com certeza vou implementar as lib do JFileHelpers

[quote=fcoury]Atualmente acredito que o tamanho do arquivo é realmente um problema. Será que temos algum candidato a dar uma olhada no código e propor uma solução?

Recebi algumas propostas de ajuda, então se alguém quiser ajudar, começando por este problema, aconselho que entre no fórum:

http://forum.jfilehelper.com

Para começarmos uma thread sobre o assunto.

Obrigado![/quote]

Eu dei uma olhada, vi o método que pega a linha e transforma em um objeto. A idéia seria em vez de adicionar numa coleção, criar um esquema que imita uma clousure.

Veja a classe FileHelperEngine, linha 256:

				T record = recordInfo.strToRecord(line);

				skip = onAfterReadRecord(currentLine, record);
				if (skip == false && record != null) {
					resArray.add(record);
				}

Poderia em vez de fazer resArray.add, poderia criar uma interface “RecordHandlerLike”, com um método “handleRecordLike”, que recebe, entre outros, o record. Poderia ter uma implementação default que adicionasse o record numa collection, mas se o usuário quisesse ele poderia já trabalhar como cada record em vez de trabalhar com todos depois de todos terem sido carregados.

Talvez manter esse método, refatora-lo, fazer um método que retorna void e recebe o handler como parâmetro… Hum… talvez eu faça um patch disso. O problema é que atualmente os projetos que eu participam não tem nenhuma funcionalidade nova que tenha essa necessidade, então não conseguiria testar numa situação real.

O ideal seria ter clousures, mas quem não tem cão caça com gato…

[quote=Rubem Azenha][quote=fcoury]Atualmente acredito que o tamanho do arquivo é realmente um problema. Será que temos algum candidato a dar uma olhada no código e propor uma solução?

Recebi algumas propostas de ajuda, então se alguém quiser ajudar, começando por este problema, aconselho que entre no fórum:

http://forum.jfilehelper.com

Para começarmos uma thread sobre o assunto.

Obrigado![/quote]

Eu dei uma olhada, vi o método que pega a linha e transforma em um objeto. A idéia seria em vez de adicionar numa coleção, criar um esquema que imita uma clousure.

Veja a classe FileHelperEngine, linha 256:

				T record = recordInfo.strToRecord(line);

				skip = onAfterReadRecord(currentLine, record);
				if (skip == false && record != null) {
					resArray.add(record);
				}

Poderia em vez de fazer resArray.add, poderia criar uma interface “RecordHandlerLike”, com um método “handleRecordLike”, que recebe, entre outros, o record. Poderia ter uma implementação default que adicionasse o record numa collection, mas se o usuário quisesse ele poderia já trabalhar como cada record em vez de trabalhar com todos depois de todos terem sido carregados.

Talvez manter esse método, refatora-lo, fazer um método que retorna void e recebe o handler como parâmetro… Hum… talvez eu faça um patch disso. O problema é que atualmente os projetos que eu participam não tem nenhuma funcionalidade nova que tenha essa necessidade, então não conseguiria testar numa situação real.

O ideal seria ter clousures, mas quem não tem cão caça com gato…[/quote]

Eu ja fiz o reader implementando Interator e Interable, e testei com um arquivo de 30 MB sem problemas de memória… só falta implementar o write para poder gerar arquivos grandes também, em vez de receber um Array para isto.

Vou ver se termino isto, e ainda hoje envio o código para o Filipe…

Mas ter um handler para isto também é interessante, bem eu vou te enviar o codigo quando terminar para dares uma olhada e ver como poderia implementar o handler ou se tem ideia melhor.

Minha pergunta é:
Dá pra usar com Java 1.4 na boa?

Valeu.

Cara…deixa eu aproveitar e perguntar:
Esse jar é o melhor dos mundos…mas ainda não sei se roda em Java 1.4, a outra dúvida é que ainda não entendi como importo o arquivo .txt e converto para uma classe BEAN.
Poderia me esclarecer?

Obrigado.

[quote=arthurgon]Minha pergunta é:
Dá pra usar com Java 1.4 na boa?

Valeu.[/quote]

Não, por que usa Generics, Annotations e Enums que não são suportadas pelo 1.4…

[quote=arthurgon]Cara…deixa eu aproveitar e perguntar:
Esse jar é o melhor dos mundos…mas ainda não sei se roda em Java 1.4, a outra dúvida é que ainda não entendi como importo o arquivo .txt e converto para uma classe BEAN.
Poderia me esclarecer?

Obrigado.[/quote]

Faz o download do .Zip e ve dentro da pasta Samples, lá tem dois exemplos bem simples de entender, foi por ai que eu aprendi a usar.

Muito bom, cara!

Bem completo! Parabéns!

Já precisei fazer um framework do mesmo propósito que, aliás, ainda mantenho o projeto ativo!

Abraços!