关于java读取远程文件时网络超时判断

来源:互联网 发布:传奇盛世翅膀数据7到8 编辑:程序博客网 时间:2024/05/16 08:04

今天远程FTP突然挂掉了,导致读取FTP的远程文件的程序僵死在线程了。检查发现是代码没有判断超时异常判断。现已修改,如下。

/** * 将远程文件临时写进本地 * @param ftpUrl * @param outputPath */public static boolean writeFtpFile2Local(String ftpUrl, String outputPath) {System.out.println("开始写文件到本地");URLConnection con=null;FileOutputStream fs =null;try {// 连接指定的网络资源,获取网络输入流URL u=new URL(ftpUrl);int bytesum = 0;int byteread = 0;con=u.openConnection();System.setProperty("sun.net.client.defaultConnectTimeout", "60000");//jdk1.4换成这个,连接超时            System.setProperty("sun.net.client.defaultReadTimeout", "60000"); //jdk1.4换成这个,读操作超时con.connect();InputStream inStream = con.getInputStream();fs= new FileOutputStream(outputPath);byte[] buffer = new byte[1444];while ((byteread = inStream.read(buffer)) != -1) {bytesum += byteread;fs.write(buffer, 0, byteread);}return true;} catch (Exception e) {System.out.println("读取远程文件到本地失败!请与系统管理员联系!"+ftpUrl);e.printStackTrace();return false;}finally{try {if(fs!=null){fs.close();fs=null;}if(con!=null){con=null;}} catch (IOException e) {e.printStackTrace();}}}



原创粉丝点击