我想要從服務器連續傳輸到一個數組中的httpresponse中讀取字節。在Android中創建一個字節數組的ArrayList
我創建與2048
的最大尺寸的字節數組所以,我想創建一個動態增加數組,我發現ArrayList的是解決方案。
我該如何克服這個解決方案?
任何幫助,將不勝感激很多
我想要從服務器連續傳輸到一個數組中的httpresponse中讀取字節。在Android中創建一個字節數組的ArrayList
我創建與2048
的最大尺寸的字節數組所以,我想創建一個動態增加數組,我發現ArrayList的是解決方案。
我該如何克服這個解決方案?
任何幫助,將不勝感激很多
你可以有一個像字節數組:
List<Byte> arrays = new ArrayList<Byte>();
要將其轉換回陣列
Byte[] soundBytes = arrays.toArray(new Byte[arrays.size()]);
-您也可以使用ByteArrayInputStream
和ByteArrayOutputStream
。
如:
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());
@GMRamesh這也適用於Android。但是,正如我在[我的回答](http://stackoverflow.com/a/13466932/535871)中指出的那樣,使用'ArrayList
@GMRamesh首先給出的解決方案''java和android'',是的,我編輯我的答案..請看看它 –
好吧,我會檢查並讓你知道 –
可以使用ByteArrayOutputStream
當你從服務器讀取積累起來的字節數。我不會使用ArrayList<Byte>
,因爲它需要裝入Byte
中的每個字節值。
當您想要訪問已經累積的字節時,只需致電ByteArrayOutputStream
即可撥打toByteArray()
。
喜泰德,我也想發送錄製的數據在arraylist併發送到服務器...我怎麼能這樣做? ..我必須像上面一樣發送 –
@GMRamesh - 您的錄製數據位於'ArrayList
沒有記錄的數據不在ArrayList
你有什麼問題嗎? – kosa
是的..其實我希望這個音頻記錄和通過http請求和響應播放相同...所以,雖然在一秒鐘內錄製它的收聽大約20次,但在播放時只能接收2到5個字節的數據20 so –