📅  最后修改于: 2023-12-03 15:01:28.952000             🧑  作者: Mango
Java中的ByteArrayOutputStream类是一个实现了输出流的缓冲区的类。它可以将写入流的数据保存到缓冲区中,在需要的时候将缓冲区中的数据输出到一个字节数组中。
ByteArrayOutputStream类有两个主要的构造方法,如下所示:
// 创建一个新的byte数组输出流,其缓冲区容量为32字节,不自动刷新。
public ByteArrayOutputStream()
// 创建一个新的byte数组输出流,其缓冲区容量为size字节,不自动刷新。
public ByteArrayOutputStream(int size)
ByteArrayOutputStream类有以下几个常用的方法:
写入一个字节。
public synchronized void write(int b)
将byte数组的一部分写入输出流中。
public synchronized void write(byte[] b, int off, int len)
将缓冲区的内容以Byte数组的形式返回。
public synchronized byte[] toByteArray()
将缓冲区的内容以字符串的形式返回。
public synchronized String toString()
将缓冲区重置为空。
public synchronized void reset()
下面是一个简单的示例,展示了如何使用ByteArrayOutputStream类:
import java.io.*;
public class Example {
public static void main(String[] args) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
outputStream.write("Hello, World!".getBytes());
byte[] byteArray = outputStream.toByteArray();
String str = outputStream.toString();
System.out.println("Byte Array: " + new String(byteArray));
System.out.println("String: " + str);
}
}
这个程序将"Hello, World!"写入一个ByteArrayOutputStream对象中,并将该对象转换为一个字节数组和一个字符串,然后将它们打印到控制台上。
输出:
Byte Array: Hello, World!
String: Hello, World!
在Java中,如果你需要将数据写入一个字节数组中,使用ByteArrayOutputStream类是一个非常方便和灵活的方式。这个类提供了许多有用的方法,例如toByteArray()和toString(),使得你可以很容易地获取缓冲区中的数据。