## URL
1. URL 統一資源定位符,標識Internet上某一資源的地址
2. URL組成部分: 協議名稱:資源名稱
3. java.net包中,URL類表示URL
~~~java
public class Test02 {
/**
* URL常用方法
* @param args
*/
public static void main(String[] args) {
try {
// 創建一個URL實例
URL immoc = new URL("http://www.imooc.com");
// ?后面表示參數,#后面表示描點
URL url = new URL(immoc, "/index.html?username=tom#test");
System.out.println("協議:" + url.getProtocol());
System.out.println("主機:" + url.getHost());
// 如果未指點端口號,則使用默認的端口號,getPort()為-1
System.out.println("端口:" + url.getPort());
System.out.println("文件路徑:" + url.getPath() + " 文件名:"
+ url.getFile() + " 相對路徑:" + url.getRef() + " 查詢字符串:"
+ url.getQuery());
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
~~~
## 使用URL讀取網頁內容
1. 通過URL對象的openStream()方法可以得到指定資源的輸入流。
2. 輸入流可以讀取、訪問網絡上的資源
~~~java
public class Test03 {
/**使用URL讀取頁面內容
* @param args
*/
public static void main(String[] args) {
try {
URL url = new URL("http://www.baidu.com");
//獲取URL對象資源的字節輸入流
InputStream is = url.openStream();
//字節輸入流轉換為字節輸入流
InputStreamReader isr = new InputStreamReader(is,"utf-8");
//添加緩沖
BufferedReader br = new BufferedReader(isr);
String data= br.readLine();
while(data!=null){
System.out.println(data);
data=br.readLine();
}
br.close();
isr.close();
is.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
~~~