该类实现一个以字节数组形式写入数据的输出流。当数据写入缓冲区时,它自动扩大。用 toByteArray()
和
toString()
能检索数据。
类 java.io.ByteArrayOutputStream
类 java.io.ByteArrayOutputStream
java.lang.Object
|
+----java.io.OutputStream
|
+----java.io.ByteArrayOutputStream
- public class ByteArrayOutputStream
- extends OutputStream
变量索引
- buf
-
数据存储的缓冲区。
- count
- 缓冲区中有效字节数。
构造子索引
- ByteArrayOutputStream()
- 创建一个新的字节数组输出流。
- ByteArrayOutputStream(int)
- 创建一个新的字节数组输出流,并带有指定大小字节的缓冲区容量。
方法索引
- reset()
- 将该字节数组输出流的
count
域重置为零,以便删除输出流中所有当前聚集的输出。 - size()
- 返回缓冲区的当前尺寸。
- toByteArray()
- 创建一个新分配的字节数组。
- toString()
- 根据平台缺省字符编码将缓冲区内容转换为字符串,并将字节转换为字符。
- toString(int)
- 创建新分配的字符串。
不推荐。
- toString(String)
- 根据指定字符编码将缓冲区内容转换为字符串,并将字节转换为字符。
- write(byte[], int, int)
- 将指定字节数组中从偏移量
off
开始的
len
个字节写入该字节数组输出流。
- write(int)
- 将指定字节写入该字节数组输出流。
- writeTo(OutputStream)
- 用
out.write(buf, 0, count)
调用输出流的写方法将该字节数组输出流的全部内容写入指定的输出流参数。
变量
buf
protected byte buf[]
- 数据存储的缓冲区。
count
protected int count
- 缓冲区中有效字节数。
构造子
ByteArrayOutputStream
public ByteArrayOutputStream()
- 创建一个新的字节数组输出流。缓冲区初始容量为 32 字节,
必要时可增加其尺寸。
ByteArrayOutputStream
public ByteArrayOutputStream(int size)
- 创建一个新的字节数组输出流,并带有指定大小字节的缓冲区容量。
- 参数:
- size - 初始尺寸
方法
write
public synchronized void write(int b)
- 将指定字节写入该字节输出流。
- 参数:
- b - 待写入的字节。
- 覆盖:
- 类 OutputStream 中的
write 。
write
public synchronized void write(byte b[],
int off,
int len)
- 将指定字节数组中从偏移量
off
开始的
len
个字节写入该字节数组输出流。
- 参数:
- b - 数据。
- off - 数据的起始偏移量。
- len - 写入的字节数。
- 覆盖:
- 类 OutputStream
中的
write 。
writeTo
public synchronized void writeTo(OutputStream out) throws IOException
- 用
out.write(buf, 0, count)
调用输出流的写方法将该字节数组输出流的全部内容写入特定输出流参数。
- 参数:
- out - 待写入数据的输出流。
- 抛出:
IOException
- 如果发生一个 I/O 错误。
reset
public synchronized void reset()
- 将该字节数组输出流的
count
域重置为零,以便删除输出流中当前聚集的所有输出。重用已分配的缓冲区空间可使输出流能够再次使用。
- 参见:
- count
toByteArray
public synchronized byte[] toByteArray()
- 创建一个新分配的字节数组。尺寸为该输出流的当前尺寸,缓冲区的有效内容已复制到其中。
- 返回值:
- 该输出流的当前内容的字节数组形式。
- 参见:
- size
size
public int size()
- 返回缓冲区的当前尺寸。
- 返回值:
-
count
域的值, 即该输出流的有效输出流。 - 参见:
- count
toString
public String toString()
- 根据平台缺省字符编码将缓冲区内容转换为字符串,并将字节转换为字符。
- 覆盖:
- 类 Object 中的
toString 。
toString
public String toString(String enc) throws UnsupportedEncodingException
- 根据指定字符编码将缓冲区内容转换为字符串,并将字节转换为字符。
- 参数:
- enc - 一个字符-编码名称
toString
public String toString(int hibyte)
- 注意:不推荐使用 toString() 。
该方法不能恰当地把字节转换成字符。同 JDK 1.1 类似,完成此操作的首选方法是采用
toString(String enc)
方法,要得到一个字符-编码名称,或使用平台的缺省编码 soSsrint
方法。
- 创建新分配的字符串。尺寸为该输出流的当前尺寸,缓冲区的有效内容已复制到其中。结果字符串中每个字符 c 是从下类字节数组的相应元素 b 中构造的:
c == (char)(((hibyte & 0xff) << 8) | (b & 0xff))
- 参数:
- hibyte - 每个导致 Unicode 字符的高字节。
- 返回值:
- 该输出流的当前内容的字节数组形式。
- 参见:
- size, toString, toString