java 中长度未知的字节数组
我正在Java中构造一个字节数组,我不知道数组会有多长。
我想要一些像Java的StringBuffer这样的工具,你可以调用.append(byte b)或.append(byte[] buf),让它缓冲我所有的字节,并在我完成后返回一个byte[]。有没有一个类可以像StringBuffer对Strings那样对字节执行?看起来ByteBuffer类不是我正在寻找的。
有人有一个好的解决方案吗?
我正在Java中构造一个字节数组,我不知道数组会有多长。
我想要一些像Java的StringBuffer这样的工具,你可以调用.append(byte b)或.append(byte[] buf),让它缓冲我所有的字节,并在我完成后返回一个byte[]。有没有一个类可以像StringBuffer对Strings那样对字节执行?看起来ByteBuffer类不是我正在寻找的。
有人有一个好的解决方案吗?
只是为了扩展前面的答案,您可以使用ByteArrayOutputStream及其方法,其中参数为:public void write(byte[] b, int off, int len)
b - 数据
off - 数据中的起始偏移量
len - 要写入的字节数
如果要将其用作“字节生成器”并逐个字节插入,则可以使用以下方法:
byte byteToInsert = 100;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write(new byte[]{byteToInsert}, 0, 1);
然后,您可以使用方法将数组转换为字符串。优点是当您需要设置输入的编码时,您可以简单地使用即:baos.toString()
baos.toString("Windows-1250")