[問題] 記憶體排序問題
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