2

我想将来自服务器的 httpresponse 中的字节连续读取到一个数组中。

我正在创建一个最大大小为 2048 的字节数组。

所以,我想创建一个动态增加的数组,我发现 ArrayList 是解决方案。

我该如何克服这个解决方案?

任何帮助将不胜感激

4

2 回答 2

2

您可以在从服务器读取字节时使用 aByteArrayOutputStream来累积字节。我不会使用 an ,ArrayList<Byte>因为它需要将 a 中的每个字节值装箱Byte

当您想要访问已累积的字节时,只需调用toByteArray().ByteArrayOutputStream

于 2012-11-20T05:08:13.777 回答
1

你可以有一个字节数组,如:

List<Byte> arrays = new ArrayList<Byte>();

将其转换回数组

Byte[] soundBytes = arrays.toArray(new Byte[arrays.size()]);

-您也可以使用ByteArrayInputStreamByteArrayOutputStream

例如:

InputStream inputStream = socket.getInputStream();  

// read from the stream  
ByteArrayOutputStream baos = new ByteArrayOutputStream();  
byte[] content = new byte[ 2048 ];  
int bytesRead = -1;  
while( ( bytesRead = inputStream.read( content ) ) != -1 ) {  
    baos.write( content, 0, bytesRead );  
} // while  

// now, as you have baos in hand, I don't think you still need a bais instance  
// but, to make it complete,
// now you can generate byte array input stream as below    
ByteArrayInputStream bais = new ByteArrayInputStream( baos.toByteArray() );  
于 2012-11-20T05:07:57.330 回答