ByteArrayOutputStream的用法
2024-08-26 22:04:36
ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。具体用法如下:
ByteArrayOutputStream: 可以捕获内存缓冲区的数据,转换成字节数组
ByteArrayInputStream: 可以将字节数组转化为输入流
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); while ((b = bin.read()) != -1) { System.out.println(b); } }
如上所示,ByteArrayOutputStream把内存中的数据读到字节数组中,而ByteArrayInputStream又把字节数组中的字节以流的形式读出,实现了对同一个字节数组的操作.
综合DataOutputStream&DataInputStream的作用和功能,与ByteArrayOutputStream和ByteArrayInputSream使用将更方便.此时DataOutputStream&DataInputStream封闭了字节流,以适当的形式读出了字节数组中的数据.如下所示:
public static void main(String[] args) throws IOException { ByteArrayOutputStream bout = new ByteArrayOutputStream(); DataOutputStream dout = new DataOutputStream(bout); String name = "xxy"; int age = 84; dout.writeUTF(name); dout.writeInt(age); byte[] buff = bout.toByteArray(); ByteArrayInputStream bin = new ByteArrayInputStream(buff); DataInputStream dis = new DataInputStream(bin); String newName = dis.readUTF(); int newAge = dis.readInt(); System.out.println(newName + ":" + newAge); }
转载: http://blog.chinaunix.net/uid-9789791-id-1997411.html
最新文章
- iOS网络2——NSURLSession使用详解
- Xcode模拟器不显示SDK版本,反而显示设备ID的解决办法
- 高性能网络server--I/O复 select poll epoll_wait之间的差
- C# 弱引用WeakReferance
- JavaScript一个whenReady函数,监听及注册事件
- CodeSmith(C#)简单示例及相关小知识
- Python 项目实践三(Web应用程序)第四篇
- 为什么Kafka速度那么快
- 为RecyclerView打造通用Adapter
- 批量注册当前文件夹中的dll和ocx
- 关于MySQL卸载重新安装的问题
- python 通用字典方法
- 洛谷P3201 [HNOI2009]梦幻布丁(链表 + 启发式合并)
- 免费申请 Github 私有仓库--学生和教育人士的福利
- Netty--使用TCP协议传输文件
- JS 毫秒日期相互转换 JS获取 今天 明天 昨天的日期
- springmvc重定向请求。
- mysql更新返回值问题(更新内容跟之前内容一样,返回0)
- 阿里云ECS下基于Centos7.4安装MySQL5.7.20
- RPM包的使用
热门文章
- Lintcode--007(不同的子序列)
- 编译cwm-recovery(含部分修改步骤)[转]
- Gson JsonParser的使用
- cf C. Insertion Sort
- ASP.NET页面事件顺序
- Qt在Mac OS X下的编程环境搭建
- Cmake Error: your compiler ";cl"; was not Found .etc
- Linux企业级项目实践之网络爬虫(22)——编写爬虫系统服务控制脚本
- DateTime字段控件值显示短格式的做法
- 微软 Dynamics AX 学习步骤