ByteArrayOutputStream、ByteArrayInputStream、DataOutputStream、DataInputStream用法
2014-08-14 16:43
447 查看
转载:http://www.blogjava.net/rainmanyang/articles/232045.html
ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。
具体用法如下:
ByteArrayOutputStream:可以捕获内存缓冲区的数据,转换成字节数组
ByteArrayInputStream:可以将字节数组转化为输入流
综合DataOutputStream&DataInputStream的作用和功能,与ByteArrayOutputStream和ByteArrayInputSream使用将更方便。此时DataOutputStream&DataInputStream封闭了字节流,以适当的形式读出了字节数组中的数据。如下所示:
ByteArrayOutputStream类是在创建它的实例时,程序内部创建一个byte型别数组的缓冲区,然后利用ByteArrayOutputStream和ByteArrayInputStream的实例向数组中写入或读出byte型数据。在网络传输中我们往往要传输很多变量,我们可以利用ByteArrayOutputStream把所有的变量收集到一起,然后一次性把数据发送出去。
具体用法如下:
ByteArrayOutputStream:可以捕获内存缓冲区的数据,转换成字节数组
ByteArrayInputStream:可以将字节数组转化为输入流
import java.io.*; public class test { 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封闭了字节流,以适当的形式读出了字节数组中的数据。如下所示:
import java.io.*; public class test { 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); } }
ByteArrayOutputStream.reset(); //重置流,使流计数=0。重置该流丢弃所有当前累积输出。
相关文章推荐
- java.ByteArrayInputStream与ByteArrayOutputStream
- ByteArrayOutputStream和ByteArrayInputStream详解
- ByteArrayInputStream example
- java.ByteArrayInputStream-ByteArrayOutputStream
- ByteArrayInputStream和ByteArrayOutputStream
- 黑马程序员-学习日志-ByteArrayInputStream
- java提高篇(14)--ByteArrayInputStream和ByteArrayOutputStream类用法
- struts2下载文件时出现:java.lang.ClassCastException: java.io.ByteArrayInputStream cannot be cast to 错误
- PrintStream、MD5、ByteArrayInputStream、 ByteArrayOutputStream、16位流介绍
- commons-io-2.6基础 IOUtils.toByteArray 将inputstream转为byte数组
- ByteArrayInputStream的作用,和BufferedOutputStream 的区别
- java.ByteArrayInputStream与ByteArrayOutputStream再次理解 - CodeAnt的专栏 - 博客频道 - CSDN.NET http://blog.csdn.
- 图片流(BufferedImage)与(ByteArrayInputStream )字节流互转
- 从InputStream到ByteArrayInputStream
- ByteArrayInputStream
- 4.5.6.1 ByteArrayInputStream和ByteArrayOutputStream类
- ByteArrayInputStream和ByteArrayOutputStream
- java.ByteArrayInputStream-ByteArrayOutputStream
- Java基础---ByteArrayInputStream、ByteArrayOutputStream
- ByteArrayOutputStream和ByteArrayInputStream详解