有时候他会卡住在line = reader.readLine()) != null
我使用下面这个方法下载网页,很多时候它都能够成功下载网页,但有时候他会卡住在line = reader.readLine()) != null这个地方,就是读不出来下面的内容。重新启动程序,这个卡住程序的网页却能够轻易读取,可见这是程序设计上的问题。请问如何克服这个问题,能不能让程序尝试读取一段时间后,如果还是读不出来,就停止读取这个网页,继续读取下一个网页内容?
		// 根据一个网址提取这个网址的网页内容
		public  String getHTMLResource(String htmlFile) throws 
IOException {//读取URL指定的网页内容
		StringBuilder Content =new StringBuilder();
		try {
	String line = null;
			URL url = new URL(htmlFile);// 根据网址创建URL对象
			URLConnection conn = url.openConnection();
             BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			while ((line = reader.readLine()) != null) {//读取文件信息
			// 记住在这里,文件的末尾多加了一个换行符,这里不清除他了。
			Content.append(line+"\n");
			}
			reader.close();
		} catch (Exception e) {}
		return Content.toString();
	}
------解决方案--------------------卡住了,跟程序设计没啥太大关系,是网络卡住了。
如果想要支持Timeout的话,应该要用java.nio.*
不过对于处理HTML的,建议你用HTTPClient好了,这些问题都帮你搞定了的。
------解决方案--------------------readLine是阻塞方法,能卡住的原因,基本是因为inputstream没有结束,还在等待输入;
你上网的时候是不是也遇到过,某个网页半天打不开,刷新下,马上就出来了;
PS:你该结贴了
------解决方案--------------------设置超时时间