Java 是否可以将多个字符串和位图添加到ByteArrayOutputStream

Java 是否可以将多个字符串和位图添加到ByteArrayOutputStream,java,android,Java,Android,我正在使用DataOutputStream将几个字符串写入ByteArrayOutputStream,如下所示: ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); DataOutputStream dataStream = new DataOutputStream(byteStream); dataStream.writeUTF(string1); etc. 但是,我还想向ByteAr

我正在使用DataOutputStream将几个字符串写入ByteArrayOutputStream,如下所示:

    ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
    DataOutputStream dataStream = new DataOutputStream(byteStream);
    dataStream.writeUTF(string1);
    etc.
但是,我还想向ByteArrayOutputStream添加一个位图。 是否可以先使用DataOutputStream写入字符串,然后使用write()将位图直接写入ByteArrayOutputStream

在写入数据后解除数据流时,如何知道要读取的字节数?
或者可以在写入字符串后将ByteArrayOutputStream传递给Bitmap.compress()吗?

我不知道您为什么要这样做,但是。。。
在将字符串写入数据流之后,对数据流执行flush,您将确信,该流已准备好接收更多数据。接下来,您可以将位图写入ByTestStream。不要忘记冲洗和关闭溪流。所有操作都应在try块中完成。将字符串写入数据流后,可以使用size()方法获取当前偏移量。

您尝试过这样做吗?您是否尝试读取结果并处理内容?如果这是一种奇怪的方式,那么将多个字符串和位图捆绑到一个字节数组(用于发送到一个RPC Api,该Api接受用于任意负载的字节数组)中的优雅方式是什么呢?它将解决另一端的问题。如果您已经像您提到的那样定义了协议(很少有字符串和位图),那么就可以了。但是请记住,如果在另一边是C++应用程序或其他不同的东西,它可能会遇到读取java字符串(UTF8编码)的麻烦。java到java,我控制代码,一边进行打包/发送,一边接收/解包。