从InputStream中读取

时间:2012-02-11 13:05:56

标签: java android inputstream

我需要编写将从InputStream中重新获取数据的应用程序。简而言之:我的应用程序将首先连接到蓝牙设备。连接后,我的应用程序将连续从InputStream重新加载数据。我的意思是设备将发送20 milisec的数据,应用程序将接收这个数据工作24小时甚至更多。现在我以这种方式阅读这些数据:

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

此循环在流中时接收数据,在输入流接近时停止。我的问题是我认为这不是最佳解决方案。在is.read(缓冲区)接收数据后,它会阻塞等待下一个消耗大量处理器的数据。您是否知道更好的方法来读取消耗最少处理器功耗的数据。谢谢你的帮助。

顺便说一句。我在Android上用Java编写应用程序。

1 个答案:

答案 0 :(得分:7)

阻止read不消耗CPU。操作系统将调用线程/进程进入休眠状态。

那个循环很好。