Estou com uma duvida relacionado ao inputstrem.
Tenho um programa que faz a leitura de “X” dados usando:
inputStream is;
while(i < X){
is.read();
...
}
Estou fazendo agora uma condição de timeout caso a transmissão caia no meio do envio
Gostaria de saber o porque do read ficar travado por um tempo (± 20sec) e só depois ler o -1 indicando o final do buffer.
Ele já tem algum timout dentro dele implementado?
Eu abro uma conexão bluetooth e fico esperando chegar os dados
A implementação é bem simples
while (j < 600) {
//Lê os dados
temp = (byte) is.read();
System.out.print(" " + Integer.toHexString(temp & 0xFF));
//Armazena dados
dados[cont_dados] = temp;
//incrementa o checksum
check += temp;
//Incrementa contador
j++;
}
Eu pensava que logo depois de forçar a interrupção no envio do dado, o read() iria ler -1 indicando o final do buffer;
Mas ele demora um tempo pra retornar o -1
Eu li alguma coisa na API sobre ele ficar bloqueado mas não entendi muito bem o porque.