你看是不是可以按读出字节进行计数。applet在一个DataInputStream中,用while循环,read(),读一个字节,每读一个或几个后进行纪录状态的表示。

解决方案 »

  1.   

    如果在缓冲的范围内是不会覆盖的。
    我想applet的线程可以不停的读取servlet的输出流,有文件结束标记就改变状态重绘。大概这样
    applet:public void init() {
      //建立一个与servlet的connection,手头没有代码,又记不住,大概new Connect(new URL(),servlet名称);
      ...
      
      InputStream input = con.getInputStream();
      int data=input.read();
      while(data!=全部结束的标记) {
        if(data == 一个文件的标记) {
         ....
        }
      }
    }
    仅供参考!
      

  2.   

    制定一个简单的协议,例如指定一个字符'#'做为一个文件的百分之一,你的servlet每下载文件百分之一就输出一个'#'号,你的applet收到一个'#'号就将进度条加1,另外再规定一个文件下载完后再输出一个'$'符号,applet收到'$'符号就从0开始记数.这样不就实现了你的功能.其实还可以扩展成可以告诉applet有关文件的各种信息,让你的applet看起来更美.只要你规定好协议好可.另外java中的stream流中读字节是阻塞的,所以你无需做线程就可以完成功能.如有不明请向我发信询问:[email protected]
      

  3.   

    如果是下载多个文件,把文件名和字节长度放在数组里,然后一个一个下载文件,用bar条显示下载的百分比。给个mail adress,我给你一个class 参照。
      

  4.   

    [email protected]   谢谢先!magicjohn(默克)  gularess() ,如果传送过程中出现异常情况怎么办?还有其他的想法吗,凡是回复的都给分。不够再加个几百分好了!