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

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

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

ByteArrayInputStream类有两个默认的构造函数:

ByteArrayInputStream(byte[] b): 使用一个字节数组当中所有的数据做为数据源,程序可以像输入流方式一样读取字节,可以看做一个虚拟的文件,用文件的方式去读取它里面的数据。

ByteArrayInputStream(byte[] b,int offset,int length): 从数组当中的第offset开始,一直取出length个这个字节做为数据源。

ByteArrayOutputStream类也有两个默认的构造函数:

ByteArrayOutputStream(): 创建一个32个字节的缓冲区

ByteArrayOutputStream(int): 根据参数指定大小创建缓冲区

这两个构造函数创建的缓冲区大小在数据过多的时候都会自动增长,如果创建缓冲区以后,程序就可以把它像虚拟文件一样似的往它里面写入内容,当写完内容以后调用ByteArrayOutputStream()的方法就可以把其中的内容当作字节数组返回。

package test.file;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; public class TestByteArrayStream { public static void main(String[] args) {
int a = 0;
int b = 1;
int c = 2;
ByteArrayOutputStream bout = new ByteArrayOutputStream();
bout.write(a);
bout.write(b);
bout.write(c);
byte[] buff = bout.toByteArray();
for (int i = 0; i < buff.length; i++) {
System.out.println(buff[i]);
}
System.out.println("***********************");
ByteArrayInputStream bin = new ByteArrayInputStream(buff);
int d;
while ((d = bin.read()) != -1) {
System.out.println(d);
}
}
}

最新文章

  1. 在ASP.NET Core Web API上使用Swagger提供API文档
  2. raw转qcow2
  3. ThinkPHP升级指导
  4. 单元测试:查找list[]中的最大值
  5. export 解决环境变量的问题!!!!
  6. 常见http状态
  7. JAVA Lambda Expressions streams
  8. vim下如何删除某行之后的所有行
  9. Webview Android与js交互
  10. 第一个ServiceStack程序
  11. threadid=1: thread exiting with uncaught exception (group=0x40db8930)
  12. 正确理解HTML,XHTML页面的头部doctype定义
  13. iOS开发者需要的5款排版工具
  14. Map Task内部实现分析
  15. HTML5-svg圆形饼状图进度条实现原理
  16. Java规则之条件语句中做空判断时使用||和&amp;&amp;常犯的错误
  17. Kubernetes之canal的网络策略(NetworkPolicy)
  18. 说一说MVC的MenuCard(五)
  19. js 向上和向下取整
  20. Pseudo Registers

热门文章

  1. TRUNC函数,ORA-01898 精度说明符过多
  2. [转]DBA,SYSDBA,SYSOPER三者的区别
  3. Java设计模式-观察者模式(Observer)
  4. 【ZOJ 3609】Modular Inverse
  5. [原]Golang FileServer
  6. hdu 1166 敌兵布阵--BIT
  7. 宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
  8. [NOIP2009] 普及组
  9. DLUTOJ 1033 Matrix
  10. 我所了解的javaScript细节