网络编程——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         }
原文地址:https://www.cnblogs.com/wzy330782/p/5487541.html