Java ByteArrayOutputStream 类用法说明及实例
本教程通过示例介绍 Java ByteArrayOutputStream 类以及使用方法。
本教程通过示例介绍 Java ByteArrayOutputStream 类以及使用方法。
java.io
包的 ByteArrayOutputStream
类可用于将数据以字节为单位写入输出字节数组。
ByteArrayOutputStream
类扩展了 OutputStream
抽象类。
注意:在 ByteArrayOutputStream
内部维护一个字节数组来存储数据。
创建 ByteArrayOutputStream
ByteArrayOutputStream
类位于 java.io
包中,ByteArrayOutputStream
类提供了构造方法创建对象。如下:
ByteArrayOutputStream out = new ByteArrayOutputStream();
在这里,我们创建了一个字节数组输出流,默认大小为 32 字节。但是,我们也可以指定字节数组输出流的初始大小。如下:
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
在这里, size
参数指定字节数组输出流的初始大小。
ByteArrayOutputStream 的方法
ByteArrayOutputStream
类实现了的 OutputStream
类中的定义的所有的抽象方法。
write() 方法
write(int byte)
- 将指定的字节写入输出流write(byte[] array)
- 将指定数组中的字节写入输出流write(byte[] arr, int start, int length)
- 将指定字节数组中从start
开始长度为length
的数据写入输出流writeTo(ByteArrayOutputStream out1)
- 将当前输出流的全部数据写入指定的输出流
示例:ByteArrayOutputStream 写入数据
import java.io.ByteArrayOutputStream;
public class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the string.";
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] array = data.getBytes();
out.write(array);
String streamData = out.toString();
System.out.println("Output stream: " + streamData);
out.close();
} catch(Exception e) {
e.getStackTrace();
}
}
}
输出
This is a line of text inside the string.
在上面的例子中,我们通过以下语句创建了一个名为 out
的字节数组输出流。
ByteArrayOutputStream output = new ByteArrayOutputStream();
然后,我们使用 write()
方法将数据写入输出流。
注意:程序中使用的 getBytes()
方法将字符串转换为字节数组。
获取 ByteArrayOutputStream 中的数据
toByteArray()
- 返回存在于输出流中的字节数组toString()
- 以字符串形式返回输出流的全部数据
例如,
import java.io.ByteArrayOutputStream;
public class Main {
public static void main(String[] args) {
String data = "This is data.";
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
out.write(data.getBytes());
byte[] byteData = out.toByteArray();
System.out.print("Data using toByteArray(): ");
for(int i=0; i<byteData.length; i++) {
System.out.println((char)byteData[i]);
}
String stringData = out.toString();
System.out.println("Data using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
输出
Data using toByteArray(): This is data.
Data using toString(): This is data.
在上面的例子中,我们创建了一个字节数组 byteData
来存储 toByteArray()
方法返回的数据。
然后我们使用 for
循环访问数组中的每个字节,将每个字节都使用类型转换转换为相应的字符。
close() 方法
ByteArrayOutputStream
类的 close()
方法是个空方法,没有任何实际操作。因此,调用 close()
方法之后,我们仍然可以使用这个类的方法对输入流进行操作。
ByteArrayOutputStream 的其他方法
方法 | 说明 |
---|---|
size() |
返回输出流中数组的大小 |
flush() |
刷新输出流 |