50行位置,把文件写到流后flush刷新一下。

解决方案 »

  1.   

    就这个问你我也问一下,应该是bos调用write 写法后flush还是应该在finally代码块 flush??
      

  2.   

    write完后flush就行,没必要放在finally里,一般finally是放流关闭/资源释放 等必要操作的。
      

  3.   

    非常感谢,问题确实解决了。通过这个问题说明我对带缓冲的输入输出流理解的还是不够。
    我想再问一下:
    1.调用write方法将数据写入流以后,flush的作用是不是,将流中的数据确实发送给服务端的读取流,并清空缓冲(字节数组)?
    2.我遇到的现象是,每次图片都少3kb,也就是最后一小块无法显示,但是图片其他部分是可以正常显示的,我是不是可以理解为最后一部分数据还在流中,因为为没有刷新所以没能确实发送给服务端的读取流?同时,即使不调用flush方法,而是每次调用write方就会发送流中的数据,并清空缓存,然后再写入下1kb的数据?拜托大神再帮帮小弟!!!
      

  4.   

    非常感谢,问题确实解决了。通过这个问题说明我对带缓冲的输入输出流理解的还是不够。
    我想再问一下:
    1.调用write方法将数据写入流以后,flush的作用是不是,将流中的数据确实发送给服务端的读取流,并清空缓冲(字节数组)?
    2.我遇到的现象是,每次图片都少3kb,也就是最后一小块无法显示,但是图片其他部分是可以正常显示的,我是不是可以理解为最后一部分数据还在流中,因为为没有刷新所以没能确实发送给服务端的读取流?同时,即使不调用flush方法,而是每次调用write方就会发送流中的数据,并清空缓存,然后再写入下1kb的数据?拜托大神再帮帮小弟!!!
    Quote:

    1,是的
    2,出于性能和效率考虑,缓冲区可能会将一部分数据保留在缓冲区,先不发送过去,等到下次调用write方法,之前的缓存的数据可能就发出去,本次的数据继续保留在缓冲区。flush方法强制将本次数据从缓冲区发送出去,刷新清空缓冲区。
      

  5.   

    非常感谢,问题确实解决了。通过这个问题说明我对带缓冲的输入输出流理解的还是不够。
    我想再问一下:
    1.调用write方法将数据写入流以后,flush的作用是不是,将流中的数据确实发送给服务端的读取流,并清空缓冲(字节数组)?
    2.我遇到的现象是,每次图片都少3kb,也就是最后一小块无法显示,但是图片其他部分是可以正常显示的,我是不是可以理解为最后一部分数据还在流中,因为为没有刷新所以没能确实发送给服务端的读取流?同时,即使不调用flush方法,而是每次调用write方就会发送流中的数据,并清空缓存,然后再写入下1kb的数据?拜托大神再帮帮小弟!!!感谢大神非常耐心的解答和帮助,把分加满,虽然不多,聊表心意~