gpt4 book ai didi

Java:将 ArrayList 转换为 byte[] 的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 11:07:01 34 4
gpt4 key购买 nike

ArrayList<Byte> bytes = new ArrayList<Byte>();
try {
int data = putObjectRequest.getInputStream().read();
bytes.add((byte) data);
while (data != -1) {
data = putObjectRequest.getInputStream().read();
bytes.add((byte)data);
}
} catch (IOException e) {
e.printStackTrace();
}

我想将其转换为byte[]。这是唯一的方法吗?

byte[] byteArray = new byte[bytes.size()];
for (int i = 0; i < bytes.size(); i++) {
byteArray[i] = bytes.get(i);
}

最佳答案

我建议使用ByteArrayOutputStream而不是ArrayList<Byte>收集您的意见:

ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
int data = putObjectRequest.getInputStream().read();
while (data != -1) {
bos.write(data);
data = putObjectRequest.getInputStream().read();
}
} catch (IOException e) {
e.printStackTrace();
}
byte[] byteArray = bos.toByteArray();

这避免了装箱和拆箱每个字节的可怕开销。 (我还修复了原始代码中的一个小错误,如果 -1 为空,则可以编写 putObjectRequest。)

关于Java:将 ArrayList<Byte> 转换为 byte[] 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12306481/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com