当前位置: 技术问答>java相关
又一个300分的问题,提出好意见也给分!!
来源: 互联网 发布时间:2015-01-26
本文导语: 先看部分代码: try{ URL siteInfo= new URL(/tech-qa-java/url/index.html); //定义一个URL实例的连接 URLConnection conn = siteInfo.openConnection(); //从URLConnection object获取InputStream的信息 InputStream inputs = conn.getInputStream(); ...
先看部分代码:
try{
URL siteInfo= new URL(/tech-qa-java/url/index.html);
//定义一个URL实例的连接
URLConnection conn = siteInfo.openConnection();
//从URLConnection object获取InputStream的信息
InputStream inputs = conn.getInputStream();
//封装InputStream到BufferedReader对象里面
BufferedReader bf= new BufferedReader(new InputStreamReader(inputs));
while((nextLine = bf.readLine())!=null)
{
page.append(nextLine + "n");
}
inputs.close();
这里有个问题,不同的url在请求连接服务器时可能出现:
java.net.SocketException: Connection reset by peer
java.io.FileNotFoundException
java.net.ConnectException: Connection refused:
java.net.UnknownHostException
等程序抛出异常时在网络上浪费的时间已经很长了,
那么我如何在程序中按规定时间(即使没有完成任务)
叫程序中断返回呢?
try{
URL siteInfo= new URL(/tech-qa-java/url/index.html);
//定义一个URL实例的连接
URLConnection conn = siteInfo.openConnection();
//从URLConnection object获取InputStream的信息
InputStream inputs = conn.getInputStream();
//封装InputStream到BufferedReader对象里面
BufferedReader bf= new BufferedReader(new InputStreamReader(inputs));
while((nextLine = bf.readLine())!=null)
{
page.append(nextLine + "n");
}
inputs.close();
这里有个问题,不同的url在请求连接服务器时可能出现:
java.net.SocketException: Connection reset by peer
java.io.FileNotFoundException
java.net.ConnectException: Connection refused:
java.net.UnknownHostException
等程序抛出异常时在网络上浪费的时间已经很长了,
那么我如何在程序中按规定时间(即使没有完成任务)
叫程序中断返回呢?
|
加个时间的限制,如果在规定的时间内不能完成任务,就中断返回
long delay = 15000; //15秒
java.util.Timer t = new java.util.Timer(); //由于java.swing.*中也有Timer
try{
t.schedule(new TimerTask(){
public void run(){
button.setEnabled(false);//这里改为中断程序返回的方法
}
}
, delay);
}catch(Exception e){}
long delay = 15000; //15秒
java.util.Timer t = new java.util.Timer(); //由于java.swing.*中也有Timer
try{
t.schedule(new TimerTask(){
public void run(){
button.setEnabled(false);//这里改为中断程序返回的方法
}
}
, delay);
}catch(Exception e){}
|
放到线程中运行
在 run()方法中写联接过程
用线程的join(timeout)方法来控制运行时间。
在 run()方法中写联接过程
用线程的join(timeout)方法来控制运行时间。