Floyd,

O método available() serve para ver quantos bytes estão PRONTOS para leitura, o que não significa que são todos os bytes que precisam ser lidos. Provavelmente a JVM do IE tem menos bytes prontos naquele instante.
Eu sugiro verificar o fim do stream de fato:

for de leitura de artigos {
   String text = "":
   byte[] b = new byte[1000];
   int length = 0;
   while((length = guarda.read(b))>0) {
      texto += new String(b);
   }
   vetor.addElement(texto);
}
 

Fabio Ramon

PS:  não compilei o código acima....

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

Responder a