再调用一下 flush() 试试?

解决方案 »

  1.   

    BufferedOutputStream在发送时会在内部保有一个缓存,以防写入太频繁达到一定量时才会写入底层,在你这里就是out.你在最后才关掉bos之前就s.shutdownOutput(),等你调用bos.close()时需要把没有刷入的数据刷入底层通道时发现..你TMD居然给我关掉了.要么就在所有s.shutdownOutput()之前调用bos.flush()或者bos.close().