都是根据inputstream.read()>0来判断的,实际上api上写-1才是流的末尾,而事实上也可能读到0的字节,此时并非是流的末尾。

解决方案 »

  1.   

    inputstream.read()>0是没到末尾吧
      

  2.   

    我觉得应该是inputstream.read()!=-1,那种情况如果碰到全0的字节会认为是流末尾,实际上不是。
      

  3.   

    那应该如何判断呢?用(read = InputStream.read()) != -1 && (read != 0),这样?还是怎样?
      

  4.   

    新垣结衣兄 在哪看到“inputstream.read()>0”这么判断的
    一直都是“-1 != inputStream.read()”的
      

  5.   

    很多网上的流demo很少是用-1的。
      

  6.   

    网上的demo你也信,不管你信不信,反正我没信! 
    我一直都用的是while((len=read.read())!=-1){...}
      

  7.   

    我有用inputstream.read()>=0判断
      

  8.   

    目测是这样的……
    好在“The value byte is returned as an int in the range 0 to 255.”, 读到1111 1111并不会返回。
      

  9.   

    是不是楼主搞错了,还是特例去年我做网络这块时,都是用
    while((len=read.read())!=-1){..} 
    做判断滴.....
      

  10.   

    判断大于-1或者不等于-1都可以,因为api说的很清楚,流读到末尾返回-1
    主要是判断是否到末尾