下面是我作为参数 java.net.Socket:getInputStream() 传入的方法。
这几乎在任何时候都非常有效。
当来自套接字的输入流是一大块空字节(不明确的数据)时,就会出现问题。这使我的程序完全停止响应。有谁知道发生了什么?我不应该得到 IOException 或其他东西,而不仅仅是停止响应吗?如果例如数据是一些无用的模棱两可的信息,我该如何退出读取。
public static String fromStream(InputStream in) throws IOException
{
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder out = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
out.append(line);
}
return out.toString();
}