Вы не должны полагаться на вызов available()
, чтобы узнать длину потока, поскольку он возвращает только оценку. Если вы хотите прочитать все байты, сделайте это в цикле следующим образом:
String data = "";
byte[] buffer = new byte[1024];
int read;
while((read = _in.read(buffer)) != -1) {
data += new String(buffer, 0, read);
}