簡體   English   中英

從InputStream讀取

[英]Reading from InputStream

我需要編寫將要從InputStream讀取數據的應用程序。 簡而言之:我的應用程序將首先連接到藍牙設備。 連接后,我的應用將連續不斷地從InputStream讀取數據。 我的意思是,該設備將發送20毫秒的數據,而應用將在24小時甚至更長的時間內接收到該數據。 現在,我以這種方式讀取此數據:

while((bytesReceived = is.read(buffer))>-1) {
  //things to do with data
}

此循環在流中時接收數據,在inputstream關閉時停止。 我的問題是我認為這不是最佳解決方案。 在is.read(buffer)接收數據之后,它將阻塞等待下一個數據的消耗,這消耗了大量的處理器。 您是否知道任何更好的方式來讀取消耗最少處理器功率的數據。 謝謝你的幫助。

順便說一句。 我在Android上使用Java編寫應用程序。

阻塞read不會消耗CPU。 操作系統會將調用線程/進程置於睡眠狀態。

該循環很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM