Java ByteArrayOutputStream 类
Java ByteArrayOutputStream 类
在本教程中,我们将通过示例了解 Java ByteArrayOutputStream 及其方法。
ByteArrayOutputStream
java.io
的类 包可用于写入输出数据数组(以字节为单位)。
它扩展了 OutputStream
抽象类。
注意 :在 ByteArrayOutputStream
维护一个内部字节数组来存储数据。
创建一个 ByteArrayOutputStream
为了创建字节数组输出流,我们必须导入 java.io.ByteArrayOutputStream
先打包。导入包后,我们可以通过以下方式创建输出流。
// Creates a ByteArrayOutputStream with default size
ByteArrayOutputStream out = new ByteArrayOutputStream();
在这里,我们创建了一个输出流,它将数据写入默认大小为 32 字节的字节数组。但是,我们可以更改数组的默认大小。
// Creating a ByteArrayOutputStream with specified size
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
在这里,大小 指定数组的长度。
ByteArrayOutputStream的方法
ByteArrayOutputStream
类提供了 OutputStream
中存在的不同方法的实现 类。
write() 方法
write(int byte)
- 将指定字节写入输出流write(byte[] array)
- 将指定数组中的字节写入输出流write(byte[] arr, int start, int length)
- 写入等于 length 的字节数 从位置 start 开始到数组的输出流writeTo(ByteArrayOutputStream out1)
- 将当前输出流的全部数据写入指定的输出流
示例:ByteArrayOutputStream 写入数据
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is a line of text inside the string.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] array = data.getBytes();
// Writes data to the output stream
out.write(array);
// Retrieves data from the output stream in string format
String streamData = out.toString();
System.out.println("Output stream: " + streamData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
输出
Output stream: This is a line of text inside the string.
在上面的示例中,我们创建了一个名为 output 的字节数组输出流 .
ByteArrayOutputStream output = new ByteArrayOutputStream();
要将数据写入输出流,我们使用了 write()
方法。
注意 :getBytes()
程序中使用的方法将字符串转换为字节数组。
从 ByteArrayOutputStream 访问数据
toByteArray()
- 返回输出流中存在的数组toString()
- 以字符串形式返回输出流的全部数据
例如,
import java.io.ByteArrayOutputStream;
class Main {
public static void main(String[] args) {
String data = "This is data.";
try {
// Creates an output stream
ByteArrayOutputStream out = new ByteArrayOutputStream();
// Writes data to the output stream
out.write(data.getBytes());
// Returns an array of bytes
byte[] byteData = out.toByteArray();
System.out.print("Data using toByteArray(): ");
for(int i=0; i<byteData.length; i++) {
System.out.print((char)byteData[i]);
}
// Returns a string
String stringData = out.toString();
System.out.println("\nData using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
输出
Data using toByteArray(): This is data. Data using toString(): This is data.
在上面的例子中,我们创建了一个字节数组来存储 toByteArray()
返回的数据 方法。
然后,我们使用 for 循环访问数组中的每个字节。这里使用类型转换将每个字节转换为对应的字符。
close() 方法
要关闭输出流,我们可以使用 close()
方法。
但是,close()
ByteArrayOutputStream
中的方法无效 班级。即使在 close()
之后我们也可以使用这个类的方法 方法被调用。
ByteArrayOutputStream的其他方法
方法 | 说明 |
---|---|
size() | 返回输出流中数组的大小 |
flush() | 清除输出流 |
要了解更多信息,请访问 Java ByteArrayOutputStream(Java 官方文档)。
java