你看到flush()为空应该是在OutputStream类中,flush我的理解是把缓存中的东西写入实体中,FileOutputStream没有实现该方法,所以你用不用都一样,你试下BufferedOutputStream,这时候有flush和没flush应该就有区别的。

解决方案 »

  1.   

    flush()作用是强制将输出流缓冲区的数据送出~~
      

  2.   

    ByteArrayOutputStream
    FileOutputStream
    的flush()的确是不一样的。ByteArrayOutputStream.flush()没有意义。
    FileOutputStream.flush()就是把内存中的bytes写到硬盘上。比如你下载一个1G的avi,JVM的Xmx开到256m,那么FileOutputStream里面最多就放256m内容,所以需要不停的flush()