ByteArrayOutputStream的用法

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

时间: 2024-10-17 05:22:33

ByteArrayOutputStream的用法的相关文章

(转)java.ByteArrayInputStream与ByteArrayOutputStream再次理解

转载自:java.ByteArrayInputStream与ByteArrayOutputStream再次理解 第一次看到ByteArrayOutputStream的时候是在Nutch的部分源码,后来在涉及IO操作时频频发现这两个类的踪迹,觉得确实是很好用,所以把它们的用法总结一下. ByteArrayOutputStream的用法 以下是JDK中的记载: public class ByteArrayOutputStream  extends OutputStream 此类实现了一个输出流,其中

java.ByteArrayInputStream与ByteArrayOutputStream再次理解

第一次看到ByteArrayOutputStream的时候是在Nutch的部分源码,后来在涉及IO操作时频频发现这两个类的踪迹,觉得确实是很好用,所以把它们的用法总结一下. ByteArrayOutputStream的用法 以下是JDK中的记载: public class ByteArrayOutputStream  extends OutputStream 此类实现了一个输出流,其中的数据被写入一个 byte 数组.缓冲区会随着数据的不断写入而自动增长.可使用 toByteArray()和 t

THUCTC源码解读(四)

LiblinearTextClassifier 我认为LiblinearTextClassifier是整个分类器中最核心的模块,实现了训练,分类等功能. LiblinearTextClassifier实现的是TextClassifier的接口,实现了TextClassifier中定义的 addTrainingText, train, saveModel, loadModel, classify, saveToString, loadFromString, setMaxFeatures, getL

Android Bitmap 用法总结

android Bitmap用法总结 Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 1.Drawable → Bitmap public static Bitmap drawableToBitmap(Drawable drawable) { Bitmap bitmap = Bitmap .createBitmap( drawable.getIntrinsicWidth(), drawable.getIntrinsi

java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream)

前面学习ByteArrayInputStream,了解了“输入流”.接下来,我们学习与ByteArrayInputStream相对应的输出流,即ByteArrayOutputStream.本章,我们会先对ByteArrayOutputStream进行介绍,在了解了它的源码之后,再通过示例来掌握如何使用它. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_03.html ByteArrayOutputStream 介绍 ByteArrayOutpu

Android清单文件详解(四) ---- backupAgent的用法

在<application>节点中有一个非常重要的属性,那就是backupAgent.这里我们将它单独列出来,从基本含义,用法及其相关属性等方面来详细介绍一下. 1.backupAgent简介 android:backupAgent用来设置备份代理.对于大部分应用程序来说,都或多或少保存着一些持久性的数据,比如数据库和共享文件,或者有自己的配置信息.为了保证这些数据和配置信息的安全性以及完整性,Android提供了这样一个机制. 我们可以通过这个备份机制来保存配置信息和数据以便为应用程序提供恢

android Bitmap用法总结

Bitmap用法总结1.Drawable → Bitmappublic static Bitmap drawableToBitmap(Drawable drawable) {Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight(),drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_888

【转】JAVA网络编程之Socket用法

JAVA网络编程之Socket用法 分类: JAVA2012-08-24 15:56 710人阅读 评论(0) 收藏 举报 在客户/服务器通信模式中,客户端需要主动建立与服务器连接的Socket,服务器端收到客户端的连接请求,也会创建与客户端连接的Socket.Socket可以看做是通信连接两端的收发器,客户端和服务店都通过Socket来收发数据. 1.构造Socket public Socket() 通过系统默认类型的 SocketImpl 创建未连接套接字 public Socket(Str

ByteArrayOutputStream

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