[問題] 記憶體排序問題

看板AndroidDev作者 (小猴)時間13年前 (2012/05/19 00:34), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
1.想請問用ByteArrayOutputStream這個方法可以排好記憶體裡面的資料嗎? 例如我從外部傳送1000筆資料,我想要用以下的方式實現 buffer[0]~buffer[499] + buffer[500]~buffer[999] 2.我嘗試傳送到終端機,確保我的資料有傳送,實際上有 ,但用了以下的方法 可能只有前4萬多筆有資料 之後的資料都消失了 是我沒接收到嗎? 尤其是以下程式的其中一段os.write(buffer, 0, bytes); 用 log.d 去看 os.size 的話是有76800資料沒錯,但就像我說的 到最後資料會不見,這邊是我頭痛的地方,好好的資料有傳送,為什麼 接到一半就消失了呢?? 有請高手幫忙,感恩..... ------------------------------------------------------- public void run() { Log.i(TAG, "BEGIN mConnectedThread"); byte[] buffer = new byte[76800]; int bytes; ByteArrayOutputStream os = new ByteArrayOutputStream(); while (true) { try { bytes = mmInStream.read(buffer); Thread.sleep(3000); if(bytes >= 0) { os.write(buffer, 0, bytes); Thread.sleep(1000); } if(os.size()>=76800) { Log.d("test1","bitmap:"+os.size()); bitmap(buffer); os.reset(); mmOutStream.write(0x31); } mHandler.obtainMessage(BluetoothChat.MESSAGE_READ, bytes, -1, buffer).sendToTarget(); } catch (IOException e) { Log.e(TAG, "disconnected", e); connectionLost(); break; } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.178.107

05/19 17:06, , 1F
換個方式說好了 有什麼方法可以一次接收完全部資料的呢?
05/19 17:06, 1F
文章代碼(AID): #1Fjde0Ff (AndroidDev)