Java 中的 ByteArrayOutputStream函数

首页 / Java入门教程 / Java 中的 ByteArrayOutputStream函数

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

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

Sr.No.Constructor & Remark
1

ByteArrayOutputStream()

此构造函数创建一个具有32字节缓冲区的ByteArrayOutputStream。

2

ByteArrayOutputStream(int a)

此构造函数创建一个具有给定大小的缓冲区的ByteArrayOutputStream。

链接:https://www.learnfk.comhttps://www.learnfk.com/java/java-bytearrayoutputstream.html

来源:LearnFk无涯教程网

一旦有了ByteArrayOutputStream对象,就会有一系列的辅助方法,可用于写入流或对该流执行其他操作。

Sr.No.Method & Remark
1

public void reset()

此方法将字节数组输出流的有效字节数重置为零,因此流中所有累积的输出将被丢弃。

2

public byte[] toByteArray()

无涯教程网

此方法创建一个新分配的Byte数组。

3

public String toString()

将缓冲区内容转换为字符串。

4

public void write(int w)

将指定的数组写入输出流。

5

public void write(byte []b, int of, int len)

将从offset 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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入浅出gRPC -〔李林锋〕

消息队列高手课 -〔李玥〕

Node.js开发实战 -〔杨浩〕

Django快速开发实战 -〔吕召刚〕

操作系统实战45讲 -〔彭东〕

数据分析思维课 -〔郭炜〕

自动化测试高手课 -〔柳胜〕

深入拆解消息队列47讲 -〔许文强〕

结构思考力 · 透过结构看思考 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)