JAVAIO-URLS

java.net.URL類是標(biāo)準(zhǔn)資源定位符。每一個(gè)URL明確地指定了因特網(wǎng)上一個(gè)資源的位置。URL有四個(gè)構(gòu)造函數(shù),每一個(gè)都聲明了MalformedURLException

  public URL(String u) throws MalformedURLException
  public URL(String protocol, String host, String file) throws MalformedURLException
  public URL(String protocol, String host, int port, String file) throws MalformedURLException
  public URL(URL context, String u) throws MalformedURLException

如果構(gòu)造器沒有給定一個(gè)URL,MalformedURLException會(huì)被拋出。如果給你一個(gè)絕對(duì)的URL比如"http://www.itdecent.cn/u/9e21abacd418",你會(huì)這樣構(gòu)造一個(gè)URL對(duì)象:

  URL u = null;
  try {
    u = new URL("http://www.itdecent.cn/u/9e21abacd418");
  } catch (MalformedURLException e) {}

你也可以把協(xié)議,host和路徑分開傳入

  URL u = null;
  try {
    u = new URL("http","www.itdecent.cn","/u/9e21abacd418");
  } catch (MalformedURLException e) {}

一般情況下,你不需要特地指定協(xié)議的端口,大多數(shù)協(xié)議有他們默認(rèn)的端口,比如HTTP的協(xié)議的默認(rèn)端口是80.如果端口改變了,可以使用下面的構(gòu)造方法:

    u = new URL("http","www.itdecent.cn",8080,"/u/9e21abacd418");

一旦URL對(duì)象被構(gòu)造,有兩種方式獲得它的內(nèi)容。openStream()方法返回原始的數(shù)據(jù)流,getContent()方法返回一個(gè)對(duì)象代表數(shù)據(jù)。當(dāng)你調(diào)用getContent()方法的時(shí)候,JAVA根據(jù)它的MIME類型,尋找一個(gè)content handler,然后返回一個(gè)可用的數(shù)據(jù)對(duì)象。
openStream()方法和URL代表的服務(wù)器和端口建立了一個(gè)Socket連接,返回一個(gè)可以獲取數(shù)據(jù)的InputStream,允許你從服務(wù)器上下載數(shù)據(jù)。所有的頭文件,跟數(shù)據(jù)無關(guān)的東西在流打開的時(shí)候都被跳過了。

  public final InputStream openStream() throws IOException

使用reader或者InputStream來獲取數(shù)據(jù):

try {
  URL u = new URL("http://www.amnesty.org/");
  InputStream in = u.openStream();
  int b;
  while ((b = in.read()) != -1) {
    System.out.write(b);
  }
 }
catch (MalformedURLException e) {System.err.println(e);}  
catch (IOException e) {System.err.println(e);}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,612評(píng)論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,734評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,816評(píng)論 11 349
  • 1、面向?qū)ο蟮奶卣饔心男┓矫?1.抽象:抽象就是忽略一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)...
    michaelgong閱讀 923評(píng)論 0 1
  • 曾經(jīng)有一個(gè)時(shí)髦的詞叫審美疲勞,這個(gè)詞如今被人們廣泛應(yīng)用,也應(yīng)用到婚姻里面。 每一樁婚姻的最初都是完美的,在對(duì)方眼里...
    崔新宇閱讀 880評(píng)論 0 6

友情鏈接更多精彩內(nèi)容