使用Android,我从微控制器读取数据(一个有符号的字节数组)。据我所知,BufferedReader的缓冲区大小为8192字节。我每秒钟发送大约200-300个字节,这意味着在调试器读取字节数组之前,我必须等待大约25-30秒(8192/300)。
每当Android接收到200-300字节数组(每个完整的TCP数据包)时,我都想读这个,有没有办法改变BufferedReader的最大字节大小,或者有其他方法来做到这一点?
private BufferedReader input;
input = new BufferedReader(new InputStreamReader(
this.clientSocket.getInputStream()));
...
...
while(true)
{
try
{
Log.i("WaitingForSomeData","");
String read = input.readLine();
byte[] bytes = read.getBytes();
}发布于 2014-09-09 08:07:35
我正在从微控制器读取数据(一个有符号的字节数组)。
如果要缓冲二进制数据,则应该使用BufferedInputStream。
您目前正在尝试读取字符流。readLine()方法将被阻塞,直到接收到\r、\n或\r\n为止。我猜这会导致您的延迟,因为您正在等待一个0x0A或0x0D字节方便地到达。
https://stackoverflow.com/questions/25739372
复制相似问题