此类实现了一个输出流,其中的数据被写入一个字节数组。缓冲区会随着数据的不断写入而自动增长,这样的话每次输出都会连以前的东西一起输出,请问如何将这个缓冲区清空。

解决方案 »

  1.   

    flush
    public void flush()
               throws IOException刷新此输出流并强制写出所有缓冲的输出字节。flush 的常规协定是:如果此输出流的实现已经缓冲了以前写入的任何字节,则调用此方法指示应将这些字节立即写入它们预期的目标。 
    如果此流的预期目标是由基础操作系统提供的一个抽象(如一个文件),则刷新此流只能保证将以前写入到流的字节传递给操作系统进行写入,但不保证能将这些字节实际写入到物理设备(如磁盘驱动器)。 OutputStream 的 flush 方法不执行任何操作。 
    指定者:
    接口 Flushable 中的 flush
    抛出: 
    IOException - 如果发生 I/O 错误。
    从OutputStream继承过来的
      

  2.   

    每次输出完我都会reset,还是那样阿。
    关闭 ByteArrayOutputStream 无效。在关闭此流后且没有生成 IOException 时,可以调用此类中的该方法。 关闭无效是什么意思啊?
      

  3.   

    不知道你说的什么意思reset会把ByteArrayOutputStream的count归零你说的“连以前的东西一起输出”是什么意思把代码贴出来,再详细描述一下