Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将ByteArrayOutputStream转换为int值_Java_Android_Bytearrayoutputstream - Fatal编程技术网

Java 将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

我一直在尝试将ByteArrayOutputStream转换为int值。

我正在用麦克风录制音频,并将其写入
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,。。。