您的位置:威尼斯官方网站 > 威尼斯正规官网 >   在Internet上过多的财富分为四个文件存放时

  在Internet上过多的财富分为四个文件存放时

发布时间:2019-12-31 22:27编辑:威尼斯正规官网浏览(173)

      序言

      超级多客户大概会遇见这么的气象:在网址上发掘一个很好的能源,不过这一个能源是分成了重重个文件寄存的,假如想把它保存到本地,独有靠客户点击另存来产生保存,即便财富分了几百依旧上千上万,那几乎是个不幸。

      在Internet上过多的财富分为七个文件贮存时,它的文件命名是有自然的中规中矩的;正因如此,大家就能够用程序来完毕那个能源的一心下载。

      1. 底子知识

      在Internet上,大家要下载网站上的某部能源,大家会得到多个U奥迪Q7L(Uniform Resource Locator),它是三个服务器财富定位的描述,下载的经过接连如下步骤:

    • 手续1:客商端发起连接必要三个UCaymanL
    • 手续2:服务器拆解深入分析U途睿欧L,并将点名的财富再次来到八个输入流给顾客
    • 手续3:客户端选拔输入流,将流中的剧情存到文件

      2. 互连网连接的树立

      Java提供了对UPRADOL访谈和多量的流操作的的API,我们得以相当的轻易的成功对网络上能源的存取,上边包车型客车代码段就完了了对三个网站的能源拓宽访问:

    ......
    destUrl="http://www.ebook.com/java/网络编程001.zip";
    url = new URL(destUrl); httpUrl = (HttpURLConnection) url.openConnection();
    //连接指定的网络资源
    httpUrl.connect();
    //获取网络输入流
    bis = new BufferedInputStream(httpUrl.getInputStream());
    ......

      3. 代理的拜候

      Java 中通过代理服务器访谈外网的艺术已是全世界的人都知道的心腹了。这里就不再多描述了,访问的Java代码如下:

    //设置代理服务器
    System.getProperties().put("proxySet", "true");
    System.getProperties().put("proxyHost", "10.154.134.110");
    System.getProperties().put("proxyPort", "8080");

      4. 网络财富的保存

      在上节中,大家曾经拿到了点名网络财富的输入流,接下去大家要成功的正是读取输入流中的所以内容,并将其保存在文书中。 示例代码:

    ......
    fos = new FileOutputStream(fileName);
    if (this.DEBUG)
     System.out.println("正在获取链接[" + destUrl + "]的内容...n将其保存为文件[" + fileName +"]");
    //保存文件
    while ( (size = bis.read(buf)) != -1)
     fos.write(buf, 0, size); ......

      上面包车型大巴亲自过问代码就将互联网能源的剧情保留到了地点钦命的文本中。

      5. 代码项目清单

    import java.io.*;import java.net.*;import java.util.*;/** * <p>Title: 个人开发的API</p> * <p>Description: 将指定的HTTP网络资源在本地以文件形式存放</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: NewSky</p> * @author MagicLiao * @version 1.0 */public class HttpGet {  public final static boolean DEBUG = true;//调试用  private static int BUFFER_SIZE = 8096;//缓冲区大小  private Vector vDownLoad = new Vector();//URL列表  private Vector vFileList = new Vector();//下载后的保存文件名列表  /**   * 构造方法   */  public HttpGet() {  }  /**   * 清除下载列表   */  public void resetList() {    vDownLoad.clear();    vFileList.clear();  }  /**   * 增加下载列表项   *   * @param url String   * @param filename String   */  public void addItem(String url, String filename) {    vDownLoad.add(url);    vFileList.add(filename);  }  /**   * 根据列表下载资源   */  public void downLoadByList() {    String url = null;    String filename = null;        //按列表顺序保存资源    for (int i = 0; i < vDownLoad.size(); i++) {      url = (String) vDownLoad.get(i);      filename = (String) vFileList.get(i);      try {        saveToFile(url, filename);      }      catch (IOException err) {        if (DEBUG) {          System.out.println("资源[" + url + "]下载失败!!!");        }      }    }    if (DEBUG) {      System.out.println("下载完成!!!");    }  }  /**   * 将HTTP资源另存为文件   *   * @param destUrl String   * @param fileName String   * @throws Exception   */  public void saveToFile(String destUrl, String fileName) throws IOException {    FileOutputStream fos = null;    BufferedInputStream bis = null;    HttpURLConnection httpUrl = null;    URL url = null;    byte[] buf = new byte[BUFFER_SIZE];    int size = 0;        //建立链接    url = new URL(destUrl);    httpUrl = (HttpURLConnection) url.openConnection();    //连接指定的资源    httpUrl.connect();    //获取网络输入流    bis = new BufferedInputStream(httpUrl.getInputStream());    //建立文件    fos = new FileOutputStream(fileName);    if (this.DEBUG) System.out.println("正在获取链接[" + destUrl + "]的内容...n将其保存为文件[" + fileName + "]");    //保存文件    while ( (size = bis.read(buf)) != -1)       fos.write(buf, 0, size);        fos.close();    bis.close();    httpUrl.disconnect();  }  /**   * 设置代理服务器   *   * @param proxy String   * @param proxyPort String   */  public void setProxyServer(String proxy, String proxyPort) {    //设置代理服务器    System.getProperties().put("proxySet", "true");    System.getProperties().put("proxyHost", proxy);    System.getProperties().put("proxyPort", proxyPort);  }  /**   * 设置认证用户名与密码   *   * @param uid String   * @param pwd String   */  public void setAuthenticator(String uid, String pwd) {    Authenticator.setDefault(new MyAuthenticator(uid, pwd));  }  /**   * 主方法(用于测试)   *   * @param argv String[]   */  public static void main(String argv[]) {    HttpGet oInstance = new HttpGet();try {//增加下载列表(此处用户可以写入自己代码来增加下载列表)oInstance.addItem("http://www.ebook.com/java/网络编程001.zip","./网络编程1.zip");oInstance.addItem("http://www.ebook.com/java/网络编程002.zip","./网络编程2.zip");oInstance.addItem("http://www.ebook.com/java/网络编程003.zip","./网络编程3.zip");oInstance.addItem("http://www.ebook.com/java/网络编程004.zip","./网络编程4.zip");oInstance.addItem("http://www.ebook.com/java/网络编程005.zip","./网络编程5.zip");oInstance.addItem("http://www.ebook.com/java/网络编程006.zip","./网络编程6.zip");oInstance.addItem("http://www.ebook.com/java/网络编程007.zip","./网络编程7.zip");//开始下载oInstance.downLoadByList();    }    catch (Exception err) {      System.out.println(err.getMessage());    }  }}

      下载源代码

    本文由威尼斯官方网站发布于威尼斯正规官网,转载请注明出处:  在Internet上过多的财富分为四个文件存放时

    关键词: