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]
    ---------------------------------------------------------------------

Responder a