打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ByteArrayOutputStream和ByteArrayInputStream详解

ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。具体用法如下:

ByteArrayOutputStream:    可以捕获内存缓冲区的数据,转换成字节数组。

ByteArrayInputStream: 可以将字节数组转化为输入流

 1
import java.io.*;
 2

 3
public class test {
 4
 public static void main(String[] args) {
 5
  int a=0;
 6
  int b=1;
 7
  int c=2;
 8
  ByteArrayOutputStream bout = new ByteArrayOutputStream();
 9
  bout.write(a);
10
  bout.write(b);
11
  bout.write(c);
12
  byte[] buff = bout.toByteArray();
13
  for(int i=0; i<buff.length; i++)
14
   System.out.println(buff[i]);
15
  System.out.println("***********************");
16
  ByteArrayInputStream bin = new ByteArrayInputStream(buff);
17
  while((b=bin.read())!=-1) {
18
   System.out.println(b);
19
  }
20
 }
21
}
22

23

24

如上所示,ByteArrayOutputStream把内存中的数据读到字节数组中,而ByteArrayInputStream又把字节数组中的字节以流的形式读出,实现了对同一个字节数组的操作.

综合DataOutputStream&DataInputStream的作用和功能,与ByteArrayOutputStream和ByteArrayInputSream使用将更方便.此时DataOutputStream&DataInputStream封闭了字节流,以适当的形式读出了字节数组中的数据.如下所示:

 1
import java.io.*;
 2

 3
public class test {
 4
 public static void main(String[] args)throws IOException {
 5
  ByteArrayOutputStream bout = new ByteArrayOutputStream();
 6
  DataOutputStream dout = new DataOutputStream(bout);
 7
  String name = "xxy";
 8
  int age = 84;
 9
  dout.writeUTF(name);
10
  dout.writeInt(age);
11
  byte[] buff = bout.toByteArray();
12
  ByteArrayInputStream bin = new ByteArrayInputStream(buff);
13
  DataInputStream dis = new DataInputStream(bin);
14
  String newName = dis.readUTF();
15
  int newAge = dis.readInt();
16
  System.out.println(newName+":"+newAge);
17
 }
18
}


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java 输入输出流 汇总
TestDataStream
BufferedImage与byte[]互转
Java输入、输入、IO流 类层次关系梳理
java.ByteArrayInputStream与ByteArrayOutputStream再次理解
JavaME(KJava ) 中原始IO流的读取
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服