📜  Java IO-ByteArrayOutputStream(1)

📅  最后修改于: 2023-12-03 15:31:30.863000             🧑  作者: Mango

Java IO - ByteArrayOutputStream

在Java中,ByteArrayOutputStream是一个实现了输出流(OutputStream)的类,它将输出的数据保存在一个字节数组中。ByteArrayOutputStream类提供了一些方法,用于将数据写入缓冲区(内存)中。

创建ByteArrayOutputStream实例

我们可以通过以下方式创建一个ByteArrayOutputStream实例:

ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
写入流数据

我们可以通过write方法往OutputStream中写入数据,如下所示:

String data = "Hello World!";
outputStream.write(data.getBytes());

上述代码会将字符串"Hello World!"的字节码写入ByteArrayOutputStream中。

获取流数据

使用toByteArray或toString方法从ByteArrayOutputStream中获取数据,如下所示:

byte[] bytes = outputStream.toByteArray();
String output = outputStream.toString();
关闭流

ByteArrayOutputStream不需要关闭,但是在完成操作之后,我们应该释放该对象的引用,以便垃圾回收器可以回收它。

示例代码

以下是一个示例程序,它使用ByteArrayOutputStream将整数值表示为字节数组:

public class Main {
   public static void main(String[] args) {
      ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
      int value = 900;

      // Write the int value to stream
      for (int i = 0; i < 4; i++) {
         outputStream.write((byte) (value & 0xFF));
         value >>>= 8;
      }

      byte[] bytes = outputStream.toByteArray();

      System.out.println("Int value in bytes: ");
      for (int i = 0; i < bytes.length; i++) {
         System.out.printf("%02X ", bytes[i]);
      }

      outputStream.close();
   }
}

输出结果如下所示:

Int value in bytes: 
00 00 03 84

上述程序将整数900表示为以字节数组形式保存的结果。我们可以看到结果为四个字节,每个字节都是16进制值。