Floyd,
o numero de bytes "available", nao e' o tamanho do arquivo.
Pode ser o quanto ja' esta disponivel no buffer. Faca a leitura dentro
de um loop do tipo
int offset = 0;
int n; // numero de bytes lidos
// -1 indica que chegou no fim do arquivo
while ((n = guarda.read(data, offset)) != -1) {
offset += n;
}
Caldera OpenLinux User wrote:
>
> Ola mocada! tudo bem com voces? aqui fala o Floyd
> seguinte,
>
> eu tou fazendo um applet, e tava tudo bem, e um applet que carrega uns
> artigos tecnicos e voce pode fazer pesquisas e achar o que queria (quem
> sabe depois de entregar o que eu tenho que entregar pro cliente eu ate
> possa pensar em colocar ele aqui no site do soujava, ia ser util pra fazer
> pesquisas nos artigos tecnicos ou noticias e tal)
>
> so que como eu tou no Linux, eu fui fazendo tudo e testando no Netscape, o
> programador que ta me ajudando aqui tambem, dai fomos abrir no Explorer, e
> pronto, so tinha uns pedacos do artigo, nao ele todo,
>
> fui rastreando tudo, e dai achei o seguinte no final das contas:
>
> nenhum componente visual meu tava com defeito nao, e todos os vetores
> tinham capacidades suficientes e tal, o problema era que:
> (estou usando o metodo .openStream() do objeto URL)
>
> o objeto de stream aberta para puxar o conteudo do arquivo tem o metodo
> .available(), que retorna o numero de bytes, pra eu poder usar o .read()
>
> so que por exemplo, no primeiro arquivo que eu notei o problema durante o
> teste, se voce der um ls no linux voce tem
>
> -rw-r--r-- 1 marcio users 1383 Nov 19 15:07 1.txt
>
> certo, o arquivo tem 1383,
> no netscape, a linha abaixo grifada que tem o System.out.println mostra
> como resultado do guarda.available() o resultado 1383
> ja o explorer mostra 746,
> entao claro que ele nao carrega inteiro
>
> Alguem tem alguma ideia de como me ajudar? eu fiz algo errado aqui? me
> parece ser uma coisa muito normal pra se usar (eu tenho isso aqui igual em
> exemplos em livros, apostilias e notas de aula e tal)
>
> Ha uma maneira diferente de fazer isso pra evitar esse erro?
>
> abaixo um pedacinho de fonte tirada de dentro do meu for de leitura dos artigos
>
>
>--------------------------------------------------------------------------------------------------
>
> java.net.URL arq_url= new java.net.URL(getCaminho()+"txts/" + Integer.toString(i)
>+ ".txt");
> ivjlblConta.setText( Integer.toString(i+1) + "/" + Integer.toString(maxfiles) );
>
> guarda = arq_url.openStream();
> System.out.println( "guarda.available() contém: " + guarda.available() );
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Aqui o Netscape e o Explorer já dizem
>coisas diferentes.
>
> byte [] data = new byte[ guarda.available() ];
> guarda.read(data);
> ^^^^^^^^^^^^^^^^^
> e claro que aqui eu ja dancei...
>
> guarda.close();
> java.lang.String texto = new java.lang.String(data);
> vetor.addElement(texto);
>
> --------------------------- LISTA SOUJAVA ---------------------------
> http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
> [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
> ---------------------------------------------------------------------
--
Eduardo Issao Ito <[EMAIL PROTECTED]>
Eurosoft Consultoria <http://www.euroconsult.com.br>
Rua Marina Saddi Haidar, 176 - Săo Paulo - SP - Brasil
CEP 04650-050
TEL: +55 11 524-8022
FAX: +55 11 524-0408
--------------------------- LISTA SOUJAVA ---------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
[para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
---------------------------------------------------------------------