我在读取inputStream时有时无法得到整个数据(收到somtime完整数据)。
private String readInputStream(InputStream in) {
PushbackInputStream inputStream = (PushbackInputStream) in;
StringBuffer outputBuffer = null;
try {
int size = inputStream.available();
outputBuffer = new StringBuffer(size);
// append the data into the stringBuilder
for (int j = 0; j < size; j++) {
int ch = inputStream.read();
outputBuffer.append((char) ch);
}
} catch (IOException ioe) {
Log.e("error", "IOException: " +
ioe.getMessage());
}
if (outputBuffer != null) {
return outputBuffer.toString();
}
我应该读取输入流,直到inputStream.available()为零..?inputStream中的数据是大的.Plz建议使用示例代码
答案 0 :(得分:1)
您误用available().
请参阅Javadoc。它与&#39; size&#39;无关,只有当前可以无阻塞地读取的内容。这可以只有零字节。
您应该阅读直到流的结尾,或直到您有完整的消息,行或文档,或者您正在阅读的任何内容。
由于您未在此代码中使用PushbackInputStream
,因此与此问题无关。