//建立url能夠指定請求的url協議,但不一樣的jvm支持的協議可能不相同(大部分支持http、file、https)
//構造只判斷字符串中的協議支不支持,而不判斷url的正確性
URL url=new URL("http://www.baidu.com");
System.out.println(url.getProtocol());
System.out.println(url.getHost());網絡
//url中沒有指定端口則返回-1
System.out.println(url.getPort());
//url中沒有指定端口則協議的默認端口,沒有該協議的默認端口的返回-1
System.out.println(url.getDefaultPort()); jvm
//區別
url.getFile();//返回路徑信息帶有查詢參數
url.getPath();//只返回路徑 編碼
//獲取url的內容(http協議不包含頭部內容,也不包含其它協議內容)
InputStream input= url.openStream();
BufferedReader reader=new BufferedReader(new InputStreamReader(input,"utf-8"));//不一樣的url可能編碼不同
String tmp=null;
while((tmp=reader.readLine())!=null){
System.out.println(tmp);
} url
//獲取url中的底層的鏈接對象,能夠對獲取更多的信息和操做
//好比直接url獲取內容默認不會超時,這可能引發程序的阻塞,經過鏈接對象能夠設置超時時間
URLConnection connection= url.openConnection(); spa
//對url中的特殊字符串進行編碼
URLDecoder.decode("xxxx","utf-8");
URLEncoder.encode("xxxx","utf-8");code
//URI沒有網絡獲取功能 對象
URI uri=new URI("http://www.baidu.com");
System.out.println(uri.getHost());
System.out.println(uri.getPort());utf-8