| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 13:55:37
|
alexcostars
JavaTeenager
Membro desde: 10/01/2009 13:08:13
Mensagens: 183
Localização: Rio Grande do Sul
Offline
|
Pessoal. Estou lendo um arquivo um tanto grande (> 30GB), que só possui uma linha. Precisava dividir o texto desse arquivo em arquivos menores de 6 dígitos cada.
Não posso ler linha a linha, pois só tem 1, e o Java não ia gostar nada de guardar 30GB de informação em uma única string.
Também não posso ler o arquivo usando como referência seu tamanho (ex: continuar enquanto tamanho for maior que 0), pois acredito que nem eu um BigInteger cabe a quantidade de caracteres que possui um arquivo de 30GB.
Eu estava lendo caractere por caractere, só parando a leitura quando o caractere fosse null, mas como podem ver, isso não é a melhor maneira de se fazer isso.
Queria ler um grupo x (no caso: 6) de caracteres por vez (se possível), mas não posso me basear no tamanho do arquivo ou quanto falta para acabar. Tentei umas gambiarras do tipo: continuar enquanto o valor lido for diferente de null, mas não ta dando.
Preciso de ajuda, to bem perdido nisso. Se alguém tiver um código que me ajude, vai se muito bem vindo.
Muito obrigado
This message was edited 1 time. Last update was at 12/03/2010 14:35:56
|
 |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 14:11:42
|
eliangela
Virtual Machine Man
![[Avatar]](/images/avatar/b977b532403e14d6681a00f78f95506e.jpg)
Membro desde: 30/04/2006 01:31:49
Mensagens: 724
Localização: Campo Mourão
Offline
|
Pelo que eu entendi, vc quer ler o arquivo de 6 em 6 bytes...
Fiz um pequeno código lendo de 6 em 6 bytes.
Na parte onde está System.out.println(Arrays.toString(bytes)); vc pode substituir pelo código que irá gravar em um novo arquivo.
espero ter ajudado
|
Não respondo perguntas por MP.
http://www.eliangela.info
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 14:25:11
|
alexcostars
JavaTeenager
Membro desde: 10/01/2009 13:08:13
Mensagens: 183
Localização: Rio Grande do Sul
Offline
|
eliangela wrote:Pelo que eu entendi, vc quer ler o arquivo de 6 em 6 bytes...
Fiz um pequeno código lendo de 6 em 6 bytes.
Na parte onde está System.out.println(Arrays.toString(bytes)); vc pode substituir pelo código que irá gravar em um novo arquivo.
espero ter ajudado
Ok, vlw pela ajuda, vou testar.
vlw
This message was edited 1 time. Last update was at 12/03/2010 14:32:06
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 14:30:21
|
maior_abandonado
JWizard
![[Avatar]](/images/avatar/0d7c463832b871c20405a6c9296b5517.jpg)
Membro desde: 03/09/2007 11:30:08
Mensagens: 2694
Localização: sp
Offline
|
Arrays é uma classe, toString é um método que converte o parâmetro passado em uma string.
)'] documentação
This message was edited 3 times. Last update was at 12/03/2010 14:32:26
|
espero ter ajudado...
falando nisso, caso seu problema tenha sido resolvido, edite o seu primeiro post e coloque um [RESOLVIDO] no titulo do tópico.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 14:35:34
|
alexcostars
JavaTeenager
Membro desde: 10/01/2009 13:08:13
Mensagens: 183
Localização: Rio Grande do Sul
Offline
|
maior_abandonado wrote:Arrays é uma classe, toString é um método que converte o parâmetro passado em uma string.
)"] documentação
Mal aew, coloquei lá no Eclipse daí eu fui ver.
Kra, testei e ficou perfeito, tu caiu do céu.
Vlw msm, abrass.
|
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/03/2010 14:46:39
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Leia este programa e veja por que é que você nunca deve ler 1 byte de cada vez, nem é preciso saber o tamanho do arquivo anteriormente.
|
|
|
 |
|
|