六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 16|回复: 0

用java下载1个网页

[复制链接]

升级  78%

47

主题

47

主题

47

主题

秀才

Rank: 2

积分
167
 楼主| 发表于 2013-2-3 11:17:52 | 显示全部楼层 |阅读模式
参考了开源软件code。在自己机器上测试通过。

import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.net.MalformedURLException;import java.net.URL;public class CopyHtm {  public static void main(String[] args) throws Exception {    String sourceUrlString = "sample/some.html";    String currentDir=System.getProperty("user.dir").replace('\\', '/');    download("file:///" +currentDir+"/"+sourceUrlString, "tmp");  }  final static int TRANSFER_SIZE = 4096;  public static void download(String link, String dest) {    File file;    URL source;    byte[] data;    InputStream in;    FileOutputStream out;    int read;    String fname = dest+"/"+genFileName(link);    File ddest = new File(dest);    if (!ddest.exists()) {      ddest.mkdirs();    }        file = new File(fname);    if(file.exists()){      return;    }    try {      source = new URL(link);      data = new byte[TRANSFER_SIZE];      try {        in = source.openStream();        try {          out = new FileOutputStream(file);          try {            while (-1 != (read = in.read(data, 0, data.length))) {              out.write(data, 0, read);            }          }catch(Exception e){            System.err.println("broken link=" + link);          }finally {            out.close();          }        } catch (FileNotFoundException fnfe) {          fnfe.printStackTrace();        } finally {          in.close();        }      } catch (FileNotFoundException fnfe) {        System.err.println("broken link " + fnfe.getMessage() + " ignored");      }    } catch (MalformedURLException murle) {      murle.printStackTrace();    } catch (IOException ioe) {      ioe.printStackTrace();    }  }  public static String genFileNameExt(String url, String ext) {    return genFileNameNoExt(url) + "." + ext;  }  public static String genFileNameNoExt(String url) {    int ilast = url.lastIndexOf("/");    String fname = url.substring(ilast);    int didx = fname.lastIndexOf('.');    if (didx > 0) {      fname = fname.substring(0, didx);//+"."+ext;    }    return fname;  }  public static String genFileName(String url) {    return genFileNameExt(url, "html");  }}
 


九霄云外
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表