设缓冲区是为了提高效率,通常只须在最后关闭前flush就可以了不过为什么缓冲区还要有最小进入字节数的限制呢
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
我不明白你是什么意思,好像没有这个限制

解决方案 »

  1.   

    是这样,我在一篇文章里看到这么一段,我看不懂,请帮忙解释一下。
    比如,假设已经写入了一个300字节的请求给一个服务器,通常希望在发送更多数据之间等待响应。但是,如果输出流有一个1024字节的缓冲区,则该流可能在数据发送出缓冲区之前正在等待更多的数据到达,但是这些数据是不会到达的,因为他们还没有发送出去!缓冲流不会发送数据给服务器,除非它从地层流获得了更多的数据,但是底层流是不会发送更多的数据,除非它从服务器获得了数据,而服务器不发送数据,除非它获得保存在缓冲中的数据!这就是矛盾!flush()方法可以解除这个僵局,因为即使缓冲区没满,它也强制要求实行缓冲操作的流传送数据!
      

  2.   

    楼上的意思,就是缓冲区大小确定后,只有数据添满,才会提交出去。在未满前,可以用flush函数强制缓冲区数据提交。
       这样做靠牺牲内存空间,或者带宽的高效率。   缓冲区空间可以自己指定,系统也有缺省值,在用户未指定时。
       
       JB9 help文件有一句: The buffer size may be specified, or the default size may be used. The default is large enough for most purposes.