ByteArrayOutputStream和ByteArrayInputStream详解
字节数组流:
ByteArrayOutputStream:??? 可以捕获内存缓冲区的数据,转换成字节数组。
?ByteArrayoutputStream bout=new ByteArrayOutputStream();
?bout.write(int a);? bout.write(int b);? bout.write(int c);
?byte[] buf=bout.toByteArray();//获取内存缓冲中的数据
?for(int i=0;i<=buf.length;i++)
?{
??System.out.println(buf[i]);
?}
?bout.close();
?注:通过调用reset()方法可以重新定位。
ByteArrayInputStream: 可以将字节数组转化为输入流
?ByteArrayInputStream bin=new ByteArrayInputStream(byte[] buf);
?int data=0;
?while( (b=bin.read())!=-1)
?{
??System.out.println(b);
?}
?bin.close();
与DataOutputStream&DataInputStream联合使用:
?
?ByteArrayOutputStream bout=new ByteArrayOutputStream();
?DataOutputStream dos=new DataOutputStream(bout);
?String name="suntao";
?int age=19;
?dos.writeUTF(name);
?dos.writeInt(age);
?byte[] buf=bout.toByteArray();//获取内存缓冲区中的数据
?dos.close();
?bout.close();
?ByteArrayInputStream bin=new ByteArrayInputStream(byte[] buf);
?DataInputStream dis=new DataInputStream(bin);
?String name=dis.readUTF();//从字节数组中读取
?int age=dis.readInt();
?dis.close();
?bin.close();
?
注:? DataInputStream&DataOutputStream还可以与FileInputStream&FileOutputStream
联合使用。
其中:
DataInputStream&DataOutputStream关心如何将数据从高层次的形式转化成低层次的形式.
?FileInputStream&FileOutputStream关心如何操作存储单元以接受和产生数据。