java.net.Url類的應用(網絡編程)

1、認識URLhtml

    類 URL 表明一個統一資源定位符,它是指向互聯網「資源」的指針。資源能夠是簡單的文件或目錄,也能夠是更爲複雜的對象的引用,例如對數據庫或搜索引擎的查詢。java

    簡單的能夠把URL理解爲包含:協議、主機名、端口、路徑、查詢字符串和參數等對象。每一段能夠獨立設置。數據庫

    應用程序也能夠指定一個「相對 URL」,它只包含到達相對於另外一個 URL 的資源的足夠信息。HTML 頁面中常常使用相對 URL.搜索引擎

    相對 URL 不須要指定 URL 的全部組成部分。若是缺乏協議、主機名稱或端口號,這些值將從完整指定的 URL 中繼承。編碼

    因爲 URL 不懂 URL 轉義,因此它不會識別同一 URL 的對等編碼和解碼形式。url

    注意,URI 類在某些特定狀況下對其組成字段執行轉義。建議使用 URI 管理 URL 的編碼和解碼,並使用 toURI() 和 URI.toURL() 實現這兩個類之間的轉換。spa

    也可使用 URLEncoder 和 URLDecoder 類,可是隻適用於 HTML 形式的編碼,它與 RFC2396 中定義的編碼機制不一樣。.net

    (以上介紹來自Java API doc)指針

    2、URL對象的構建code

    方式不少,能夠看看API文檔。

    3、獲取URL指定的資源

    下面給個例子,說明如何獲取到指定的資源。

Java代碼  

  1. import java.io.*;        

  2. import java.net.URL;        

  3. import java.net.URLConnection;        

  4.       

  5. public class TestURL {        

  6.         public static void main(String[] args) throws IOException {        

  7.                 test4();        

  8.                 test3();        

  9.                 test2();        

  10.                 test();        

  11.         }        

  12.       

  13.         /**      

  14.          * 獲取URL指定的資源。      

  15.          *      

  16.          * @throws IOException      

  17.          */        

  18.         public static void test4() throws IOException {        

  19.                 URL url = new URL("http://lavasoft.blog.51cto.com/attachment/200811/200811271227767778082.jpg");        

  20.                 //得到此 URL 的內容。        

  21.                 Object obj = url.getContent();        

  22.                 System.out.println(obj.getClass().getName());        

  23.         }        

  24.       

  25.         /**      

  26.          * 獲取URL指定的資源      

  27.          *      

  28.          * @throws IOException      

  29.          */        

  30.         public static void test3() throws IOException {        

  31.                 URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");        

  32.                 //返回一個 URLConnection 對象,它表示到 URL 所引用的遠程對象的鏈接。        

  33.                 URLConnection uc = url.openConnection();        

  34.                 //打開的鏈接讀取的輸入流。        

  35.                 InputStream in = uc.getInputStream();        

  36.                 int c;        

  37.                 while ((c = in.read()) != -1)        

  38.                         System.out.print(c);        

  39.                 in.close();        

  40.         }        

  41.       

  42.         /**      

  43.          * 讀取URL指定的網頁內容      

  44.          *      

  45.          * @throws IOException      

  46.          */        

  47.         public static void test2() throws IOException {        

  48.                 URL url = new URL("http://www.hrtsea.com/down/soft/45.htm");        

  49.                 //打開到此 URL 的鏈接並返回一個用於從該鏈接讀入的 InputStream。        

  50.                 Reader reader = new InputStreamReader(new BufferedInputStream(url.openStream()));        

  51.                 int c;        

  52.                 while ((c = reader.read()) != -1) {        

  53.                         System.out.print((char) c);        

  54.                 }        

  55.                 reader.close();        

  56.         }        

  57.       

  58.         /**      

  59.          * 獲取URL的輸入流,並輸出      

  60.          *      

  61.          * @throws IOException      

  62.          */        

  63.         public static void test() throws IOException {        

  64.                 URL url = new URL("http://lavasoft.blog.51cto.com/62575/120430");        

  65.                 //打開到此 URL 的鏈接並返回一個用於從該鏈接讀入的 InputStream。        

  66.                 InputStream in = url.openStream();        

  67.                 int c;        

  68.                 while ((c = in.read()) != -1)        

  69.                         System.out.print(c);        

  70.                 in.close();        

  71.         }        

  72. }          

   4、Java所支持的URL類型

Java代碼

  1. import java.net.URL;        

  2.       

  3. public class MainClass {        

  4.       

  5.         public static void main(String[] args) {        

  6.       

  7.                 String host = "www.java2s.com";        

  8.                 String file = "/index.html";        

  9.       

  10.                 String[] schemes = {"http""https""ftp""mailto""telnet""file""ldap""gopher",        

  11.                                 "jdbc""rmi""jndi""jar""doc""netdoc""nfs""verbatim""finger""daytime",        

  12.                                 "systemresource"};        

  13.       

  14.                 for (int i = 0; i < schemes.length; i++) {        

  15.                         try {        

  16.                                 URL u = new URL(schemes, host, file);        

  17.                                 System.out.println(schemes + " is supported/r/n");        

  18.                         } catch (Exception ex) {        

  19.                                 System.out.println(schemes + " is not supported/r/n");        

  20.                         }        

  21.                 }        

  22.         }        

  23. }       

相關文章
相關標籤/搜索