Java ByteArrayOutputStream类

Java ByteArrayOutputStream类

The ByteArrayOutputStream类流在内存中创建一个缓冲区,所有发送到该流的数据都存储在缓冲区中。

以下是ByteArrayOutputStream类提供的构造函数列表。

序号 构造函数和描述
1 ByteArrayOutputStream() 此构造函数创建一个大小为32字节的字节数组输出流。
2 ByteArrayOutputStream(int a) 此构造函数创建一个指定大小的字节数组输出流。

一旦你手上有一个 ByteArrayOutputStream 对象,那么有一系列的辅助方法可以用来写入流或者在流上进行其他操作。

序号 方法 & 描述
1 public void reset() 该方法将字节数组输出流的有效字节数重置为零,因此流中的所有累积输出都将被丢弃。
2 public byte[] toByteArray() 该方法创建一个新分配的字节数组,其大小将是输出流的当前大小,并且缓冲区的内容将被复制到其中。将输出流的当前内容作为字节数组返回。
3 public String toString() 将缓冲区内容转换为字符串。根据默认字符编码进行翻译。返回从缓冲区内容翻译得到的字符串。
4 public void write(int w) 将指定数组写入输出流。
5 public void write(byte []b, int of, int len) 将从偏移量off开始的len个字节写入流。
6 public void writeTo(OutputStream outSt) 将此流的整个内容写入指定的流参数。

示例

以下是一个示例,演示了ByteArrayOutputStream和ByteArrayInputStream的用法。

import java.io.*;
public class ByteStreamTest {

   public static void main(String args[])throws IOException {
      ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12);

      while( bOutput.size()!= 10 ) {
         // Gets the inputs from the user
         bOutput.write("hello".getBytes());  
      }
      byte b [] = bOutput.toByteArray();
      System.out.println("Print the content");

      for(int x = 0; x < b.length; x++) {
         // printing the characters
         System.out.print((char)b[x]  + "   "); 
      }
      System.out.println("   ");

      int c;
      ByteArrayInputStream bInput = new ByteArrayInputStream(b);
      System.out.println("Converting characters to Upper case " );

      for(int y = 0 ; y < 1; y++ ) {
         while(( c = bInput.read())!= -1) {
            System.out.println(Character.toUpperCase((char)c));
         }
         bInput.reset(); 
      }
   }
}

以下是上述程序的示例运行:

输出

Print the content
h   e   l   l   o   h   e   l   l   o      
Converting characters to Upper case 
H
E
L
L
O
H
E
L
L
O

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程