以下是我的方法,其中我將其作爲參數java.net.Socket傳入:getInputStream()。從java.net.Socket讀取InputStream有時會阻止
這在幾乎所有的時候都能很好地工作。當從插槽輸入流是空字節(歧義數據)的一大塊發生
問題。這使得我的程序完全停止響應。有誰知道發生了什麼事?我應該不會得到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();
}
你能描述*完全*崩潰是什麼?你有沒有診斷? –
沒有線程在事件發生後才停止響應...我所知道的是,我在這種情況下閱讀的數據是一個非常非常非常(太)長的空字節(或字節'00')。 –
建議您在每100個讀取行和「while」循環後添加打印輸出 – Andremoniy