ByteArrayOutputStream类用法以及ByteArrayOutputStream.toByteArray()方法实例

ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,

然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。

在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。如下将变量a b  c收集到一起

具体用法如下: 
ByteArrayOutputStream:    可以捕获内存缓冲区的数据,转换成字节数组  (从数组写)

ByteArrayInputStream: 可以将字节数组转化为输入流   (从数组读)

  public static void main(String[] args) {
        int a = 98;
        int b = 99;
        int c = 100;
        ByteArrayOutputStream out=new ByteArrayOutputStream();
        out.write(a);
        out.write(b);
        out.write(c);
        byte[] buff = out.toByteArray();//在下面再说toByteArray用法
        for (int i = 0; i < buff.length; i++)
            System.out.println(buff[i]);
        System.out.println("***********************");
        ByteArrayInputStream bin = new ByteArrayInputStream(buff);
        while ((b = bin.read()) != -1) {
            System.out.println("ss"+b);
        }
    }

输出结果为:

98
99
100
***********************
ss98
ss99
ss100

 

java.io.ByteArrayOutputStream.toByteArray() 方法创建一个与此输出流大小一样的新缓冲区

声明

以下是java.io.ByteArrayOutputStream.toByteArray()方法的声明:

public byte[] toByteArray()

参数

  • NA

返回值

参考:https://www.yiibai.com/java/io/bytearrayoutputstream_tobytearray.html

 

  public static void main(String[] args) {
        int a = 98;
        int b = 99;
        int c = 100;
        ByteArrayOutputStream out=new ByteArrayOutputStream();
        out.write(a);
        out.write(b);
        out.write(c);
        byte[] buff = out.toByteArray();//在下面再说toByteArray用法
        for (int i = 0; i < buff.length; i++)
            System.out.println(buff[i]);
        System.out.println("***********************");
        ByteArrayInputStream bin = new ByteArrayInputStream(buff);
        while ((b = bin.read()) != -1) {
            System.out.println("ss"+b);
        }
    }

ByteArrayOutputStream:    捕获内存缓冲区的数据,转换成字节数组  (从数组写)

这里的out.toByteArray()是得到一个与out输出流大小一样的新的缓冲区,并包含out的字节数组值, out缓冲区有字节数组值:[98 99 100], 因此

buff[0]=98;buff[1]=99;buff[2]=100;

ByteArrayInputStream 将字节数组buff作为输入流由bin接收,数组有3个字节,read每次读一个字节。输出的结果为:

ss98
ss99
ss100

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值