在Java中如何在字节数组中存储多个值?

在Java中如何在字节数组中存储多个值?,java,arrays,serialization,bytearrayoutputstream,Java,Arrays,Serialization,Bytearrayoutputstream,因此,我目前正在尝试为我的Java应用程序保存和加载数据。现在,我正试图将所有数据保存在一个大的字节[]中,而不是使用Base64写入文件。我以前见过类似的情况,您可以执行writeString(String s)将字符串写入字节[]并使用readString()从字节[]读取字符串。我想知道这到底是怎么回事;如何将多个值写入字节[],并知道一个值何时结束,另一个值何时开始。使用整数很容易,因为它们的大小是固定的,但字符串是动态的,所以如何才能看到字节[]中的字符串何时结束 我已经使用ByteB

因此,我目前正在尝试为我的Java应用程序保存和加载数据。现在,我正试图将所有数据保存在一个大的
字节[]
中,而不是使用Base64写入文件。我以前见过类似的情况,您可以执行
writeString(String s)
将字符串写入
字节[]
并使用
readString()
字节[]
读取字符串。我想知道这到底是怎么回事;如何将多个值写入
字节[]
,并知道一个值何时结束,另一个值何时开始。使用整数很容易,因为它们的大小是固定的,但字符串是动态的,所以如何才能看到
字节[]
中的字符串何时结束


我已经使用
ByteBufferOutputStream
将数据写入
字节[]
,现在我需要知道如何区分不同的值。例如,我是否可以在字符串字节结束的位置插入一个
0x0
-字节,以知道何时停止读取
byte[]

一个0x00表示字符串结束,或者您可以先存储字符串的长度,然后再存储数据字节

0x00表示字符串的结尾,或者您可以先存储字符串的长度,然后再存储数据字节。这听起来是个好主意!我要试一试!您还可以使用
ObjectOutputStream
将字节写入数组/缓冲区,并让该Java类为您进行封送处理。@JJF如果您将注释作为答案发布,我可以将其标记为已解决!