我需要创建一个字节数组,可以通过向末尾添加更多字节来扩展,类似于C ++中的vector<char>
或Python中的字节字符串。
标准Java数组和ByteBuffer
都不合适,因为它们不可扩展。
ArrayList<Byte>
会起作用,但似乎效率不高,因为它会为每一口创造一个盒装对象。
StringBuilder
似乎合适(一个char
可能没有任何困难存储从0到255的数字),特别是因为它可以在一个语句中附加几个字节,尽管它用于此目的似乎可能有点违反直觉的,因为它是用于文本字符串而不是二进制数据。
Java标准库中除了StringBuilder
之外还有什么比这更好的了吗?
答案 0 :(得分:2)
您可以使用ByteArrayOutputStream。
final ByteArrayOutputStream baos = new ByteArrayOutputStream();
// invoke write(..) methods on baos.
final byte[] array = baos.toByteArray();