JavaTM 2 Platform
Standard Ed. 5.0

java.io
类 ByteArrayOutputStream

java.lang.Object
  继承者 java.io.OutputStream
      继承者 java.io.ByteArrayOutputStream
所有已实现的接口:
Closeable, Flushable

public class ByteArrayOutputStream
extends OutputStream

此类实现了一个输出流,其中的数据被写入一个字节数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray()toString() 检索数据。

关闭 ByteArrayOutputStream 无效。在关闭此流后且没有生成 IOException 时,可以调用此类中的该方法。

从以下版本开始:
JDK1.0

字段摘要
protected  byte[] buf
          存储数据的缓冲区。
protected  int count
          缓冲区中的有效字节数。
 
构造方法摘要
ByteArrayOutputStream()
          创建一个新的字节数组输出流。
ByteArrayOutputStream(int size)
          创建一个新的字节数组输出流,它具有指定大小的缓冲区容量(以字节为单位)。
 
方法摘要
 void close()
          关闭 ByteArrayOutputStream 无效。
 void reset()
          将此字节数组输出流的 count 字段重置为零,从而丢弃输出流中目前已累积的所有输出。
 int size()
          返回缓冲区的当前大小。
 byte[] toByteArray()
          创建一个新分配的字节数组。
 String toString()
          将缓冲区的内容转换为字符串,根据平台的默认字符编码将字节转换成字符。
 String toString(int hibyte)
          已过时。 此方法无法将字节正确转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是通过 toString(String enc) 方法(使用一个编码名称参数),或 toString() 方法(使用平台的默认字符编码)。
 String toString(String enc)
          将缓冲区的内容转换为字符串,根据指定的字符编码将字节转换成字符。
 void write(byte[] b, int off, int len)
          将指定字节数组中从偏移量 off 开始的 len 个字节写入此字节数组输出流。
 void write(int b)
          将指定的字节写入此字节数组输出流。
 void writeTo(OutputStream out)
          将此字节数组输出流的全部内容写入到指定的输出流参数中,这与使用 out.write(buf, 0, count) 调用该输出流的 write 方法效果一样。
 
从类 java.io.OutputStream 继承的方法
flush, write
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

字段详细信息

buf

protected byte[] buf
存储数据的缓冲区。


count

protected int count
缓冲区中的有效字节数。

构造方法详细信息

ByteArrayOutputStream

public ByteArrayOutputStream()
创建一个新的字节数组输出流。缓冲区的容量最初是 32 字节,如有必要可增加其大小。


ByteArrayOutputStream

public ByteArrayOutputStream(int size)
创建一个新的字节数组输出流,它具有指定大小的缓冲区容量(以字节为单位)。

参数:
size - 初始大小。
抛出:
IllegalArgumentException - 如果 size 为负。
方法详细信息

write

public void write(int b)
将指定的字节写入此字节数组输出流。

指定者:
OutputStream 中的 write
参数:
b - 要写入的字节。

write

public void write(byte[] b,
                  int off,
                  int len)
将指定字节数组中从偏移量 off 开始的 len 个字节写入此字节数组输出流。

覆盖:
OutputStream 中的 write
参数:
b - 数据。
off - 数据的初始偏移量。
len - 要写入的字节数。

writeTo

public void writeTo(OutputStream out)
             throws IOException
将此字节数组输出流的全部内容写入到指定的输出流参数中,这与使用 out.write(buf, 0, count) 调用该输出流的 write 方法效果一样。

参数:
out - 要写入数据的输出流。
抛出:
IOException - 如果发生 I/O 错误。

reset

public void reset()
将此字节数组输出流的 count 字段重置为零,从而丢弃输出流中目前已累积的所有输出。通过重新使用已分配的缓冲区空间,可以再次使用该输出流。

另请参见:
ByteArrayInputStream.count

toByteArray

public byte[] toByteArray()
创建一个新分配的字节数组。其大小是此输出流的当前大小,并且缓冲区的有效内容已复制到该数组中。

返回:
以字节数组的形式返回此输出流的当前内容。
另请参见:
size()

size

public int size()
返回缓冲区的当前大小。

返回:
count 字段的值,这是此输出流中有效字节的数目。
另请参见:
count

toString

public String toString()
将缓冲区的内容转换为字符串,根据平台的默认字符编码将字节转换成字符。

覆盖:
Object 中的 toString
返回:
转换缓冲区的内容所得到的字符串。
从以下版本开始:
JDK1.1

toString

public String toString(String enc)
                throws UnsupportedEncodingException
将缓冲区的内容转换为字符串,根据指定的字符编码将字节转换成字符。

参数:
enc - 字符编码名称。
返回:
转换缓冲区的内容所得到的字符串。
抛出:
UnsupportedEncodingException - 如果不支持指定的编码。
从以下版本开始:
JDK1.1

toString

@Deprecated
public String toString(int hibyte)
已过时。 此方法无法将字节正确转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是通过 toString(String enc) 方法(使用一个编码名称参数),或 toString() 方法(使用平台的默认字符编码)。

创建一个新分配的字符串。其大小是该输出流的当前大小,并且缓冲区的有效内容已复制到其中。得到的字符串中的每个字符 c 都根据字节数组中的相应元素 b 构造,如下所示:
     c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
 

参数:
hibyte - 每个结果 Unicode 字符的高次字节。
返回:
以字符串的形式返回输出流的当前内容。
另请参见:
size(), toString(String), toString()

close

public void close()
           throws IOException
关闭 ByteArrayOutputStream 无效。在关闭此流后且没有生成 IOException 时,可以调用此类中的该方法。

指定者:
接口 Closeable 中的 close
覆盖:
OutputStream 中的 close
抛出:
IOException - 如果发生 I/O 错误。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策