zoukankan      html  css  js  c++  java
  • 网络编程——URL编程

    URL:是统一资源定位器的简称,它表示Internet某一资源的地址。通过URL我们可以访问Internet上的各种网络资源,比如最常见的www,ftp站点。浏览器通过解析给定的URL可以在网络上查找相应的文件或其他资源。

     

    组成:URL的基本结构由5部分组成。

    <传输协议>://<主机名>:<端口号>/<文件名>#<引用>

    http://www.tomcat.com:80/Gamelan/network.htm#BOTTOM

    协议名://机器名+端口号+文件名+内部引用

     

    为了表示URL,java.net包中实现了类URL。

    构造方法

    ① URL(String url)

    //url代表一个绝对地址,URL对象直接指向这个资源,如:

    URL url=new URL(http://www.baidu.com);

    ② URL(URL baseURL,String relativeURL)

    //其中,baseURL代表绝对地址,relativeURL代表相对地址,如:

    URL url=new URL(http://www.baidu.com);

    URL lib=new URL(url,”library/library.htm”);

    ③ URL(String protocol,String host,String file)

    //其中,protocol代表通信协议,host代表主机名,file代表文件名,如:

    new URL(“http”,www.baidu.com,”/test/test.htm”);

    ④ URL(String protocol,String host,int port,String file)

    URL lib = new URL(“http”,www.baidu.com,80,”/test/test.htm”);

     

    获取URL对象的属性

    ① getFile():获得URL指定资源的完整文件名。

    ② getHost():返回主机名。

    ③ getPath():返回指定资源的文件目录和文件名。

    ④ getPort():返回端口号。

    ⑤ getProtocol():返回表示URL中协议的字符串对象。

    ⑥ getRef():返回URL中的HTML文档标记,即#号标记。

    ⑦ getUserInfo():返回用户信息。

     

    URL有两种方法可以用来访问Interent上资源。

    ① 使用URL的openConnection()方法创建一个URLConnection类的对象。再通过URLConnection对象获取相应的输入/输出流。

    ② 利用URL类的openStream()方法。openStream()方法与指定的URL建立连接并返回InputStream类的对象。

     

     示例:下载url文件到指定目录

    下载方法:

     1 class DownLoadUtil {
     2     public static void download(String urlString, String fileName,
     3             String savePath) throws IOException {
     4         URL url = new URL(urlString);
     5         //方法一
     6         // URLConnection conn = url.openConnection();
     7         // InputStream is = conn.getInputStream();
     8         
     9         //方法二
    10         InputStream is = url.openStream();
    11         
    12         byte[] buff = new byte[1024];
    13         int len = 0;
    14         File file = new File(savePath);
    15         if (!file.exists()) {
    16             file.mkdirs();
    17         }
    18         OutputStream os = new FileOutputStream(file.getAbsolutePath() + "\"
    19                 + fileName);
    20         while ((len = is.read(buff)) != -1) {
    21             os.write(buff, 0, len);
    22         }
    23         // 释放资源
    24         os.close();
    25         is.close();
    26     }
    27 }

    主方法:

    1         try {
    2             DownLoadUtil
    3                     .download(
    4                             "http://images.sohu.com/saf/a2016/0511/wKiDRFcy-16AHkkXAABH52NJX18606.jpg",
    5                             "my.jpg", "d:/ceshi");
    6         } catch (IOException e) {
    7             e.printStackTrace();
    8         }
  • 相关阅读:
    生成器
    迭代器
    闭包函数
    装饰器(2)
    装饰器(1)
    名称空间与作用域(2)
    110.网络编程-mail
    109.网络编程-FTP
    108.网络编程-TCP/UDP
    107.xpath
  • 原文地址:https://www.cnblogs.com/wzy330782/p/5487541.html
Copyright © 2011-2022 走看看