gpt4 book ai didi

java - 用于短裤而不是字节的 ByteArrayOutputStream

转载 作者:行者123 更新时间:2023-11-29 03:23:05 26 4
gpt4 key购买 nike

我使用了非常有用的 ByteArrayOutputStream,但是对于我的需要来说,限制太大了(即我正在处理 +-32,768 范围内的数字)

这是我要使用它的代码:

ByteArrayOutputStream leftStream = new ByteArrayOutputStream();
ByteArrayOutputStream rightStream = new ByteArrayOutputStream();

while (din.read(temp, 0, 4) != -1) {
if (decodedFormat.getChannels() == 2) {
leftStream.write(temp[1] * 256 + temp[0]);
rightStream.write(temp[3] * 256 + temp[2]);
}
}

byte[] left = leftStream.toByteArray();
byte[] right = rightStream.toByteArray();

但是 ByteArrayInputStream 不允许超过 127 或低于 128 的值。是否有允许短路的等效 ShortArrayOutputStream?还是我必须以某种方式自己制作一个?

最佳答案

是的,使用 DataOutputStream:

ByteArrayOuputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);

dos.writeShort(val);

这甚至适用于 Java 1.3 版本较低的嵌入式 Java 设备

在使用中阅读:

ByteArrayInputStreamDataInputStream dis, and dis.readShort():

...
byte[] bytes = bos.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
DataInputStream dis = new DataInputStream(bis);
short val = dis.readShort();

关于java - 用于短裤而不是字节的 ByteArrayOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22516923/

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