【转】ByteArrayOutputStream和ByteArrayInputStream详解
2024-09-30 10:50:43
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);
}
}
}
最新文章
- 在ASP.NET Core Web API上使用Swagger提供API文档
- raw转qcow2
- ThinkPHP升级指导
- 单元测试:查找list[]中的最大值
- export 解决环境变量的问题!!!!
- 常见http状态
- JAVA Lambda Expressions streams
- vim下如何删除某行之后的所有行
- Webview Android与js交互
- 第一个ServiceStack程序
- threadid=1: thread exiting with uncaught exception (group=0x40db8930)
- 正确理解HTML,XHTML页面的头部doctype定义
- iOS开发者需要的5款排版工具
- Map Task内部实现分析
- HTML5-svg圆形饼状图进度条实现原理
- Java规则之条件语句中做空判断时使用||和&;&;常犯的错误
- Kubernetes之canal的网络策略(NetworkPolicy)
- 说一说MVC的MenuCard(五)
- js 向上和向下取整
- Pseudo Registers
热门文章
- TRUNC函数,ORA-01898 精度说明符过多
- [转]DBA,SYSDBA,SYSOPER三者的区别
- Java设计模式-观察者模式(Observer)
- 【ZOJ 3609】Modular Inverse
- [原]Golang FileServer
- hdu 1166 敌兵布阵--BIT
- 宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
- [NOIP2009] 普及组
- DLUTOJ 1033 Matrix
- 我所了解的javaScript细节