Java 将ByteArrayOutputStream转换为int值
我一直在尝试将ByteArrayOutputStream转换为int值。 我正在用麦克风录制音频,并将其写入Java 将ByteArrayOutputStream转换为int值,java,android,bytearrayoutputstream,Java,Android,Bytearrayoutputstream,我一直在尝试将ByteArrayOutputStream转换为int值。 我正在用麦克风录制音频,并将其写入out=new ByteArrayOutputStream()如下: out.write(buffer, 0, count); byte audio[]=out.toByteArray() 当我打印此文件时,我会得到以下信息:[B@3456337e 如何将这些转换为整数 请帮助,谢谢没有标准方法,因为实际上这取决于您拥有的字节类型,但是,由于它是音频源,我认为您可以这样做: IntBuf
out=new ByteArrayOutputStream()
如下:
out.write(buffer, 0, count);
byte audio[]=out.toByteArray()代码>
当我打印此文件时,我会得到以下信息:[B@3456337e
如何将这些转换为整数
请帮助,谢谢没有标准方法,因为实际上这取决于您拥有的字节类型,但是,由于它是音频源,我认为您可以这样做:
IntBuffer intBuf =
ByteBuffer.wrap(byteArray)
.order(ByteOrder.BIG_ENDIAN) //or try ByteOrder.LITTLE_ENDIAN
.asIntBuffer();
int[] array = new int[intBuf.remaining()];
intBuf.get(array);
//The result you want is "array"
我希望它能对您有所帮助。将其转换为数组,将数组包装在ByteArrayInputStream
中,将其包装在数据输入流中,
并使用readInt()。
尝试以下操作-
ByteArrayOutputStream out = new ByteArrayOutputStream();
DataInputStream dataIs = new DataInputStream
(new ByteArrayInputStream(out.toByteArray());
// available stream to be read
while(dataIs.available()>0)
{
int k = dataIs.readInt();
// print int
System.out.print(k+" ");
}
您想打印字节数组,还是真的想将其转换为int数组?int-array sir@kupsefSo您想将每个四字节块转换为一个有符号整数?感谢您的回复,对不起,我不太明白,我应该打印什么来获得我的整数数组?我打印了intBuf.get(array);我得到了java.nio.ByteBufferAsIntBufferB[pos=11025 lim=11025 cap=11025]我需要的是一个介于0-256@user3733356之间的单个数字是的,对不起,我忘了告诉你结果是“数组”。打印“数组”,你就会得到你想要的打印数组,明白吗[I@629bee3a,我想是另一个byte@user3464035尝试System.out.println(Arrays.toString(array));
@Duncan我得到一堆0,0,0,0,0,0,因为音频波动,我应该得到像100,80,34,。。。