網絡協議基礎之URL

URL組成部分及創建:
  1. 協議 + 存放資源主機位置+端口 +資源文件名(相對主機相對路徑)
  2. 創建
    1. 絕對路徑創建:URL(String spec)
    2. 相對路徑創建:相對路徑構建,URL(URL context, spec)
      import java.net.MalformedURLException;
      import java.net.URL;
      
      /**
       * 協議 存放資源主機名 端口 資源文件名(/之後的,的相對路徑相對主機)
       * URL創建:
       * 一:絕對路徑構建,URL(String spec)
       * 二:相對路徑構建,URL(URL context, spec)
       * 
       * @author Administrator
       */
      public class url {
      	public static void main(String[] args) throws MalformedURLException {
      		// 絕對路徑構建
      		URL url = new URL("http://baidu.com:80/index.html#aa?name=te");
      		System.out.println("協議" + url.getProtocol());
      		System.out.println("域名" + url.getHost());
      		System.out.println("端口" + url.getPort());
      		System.out.println("資源" + url.getFile());
      		System.out.println("相對路徑" + url.getPath());
      		// 錨點和參數衝突只能獲取一個
      		System.out.println("錨點" + url.getRef());
      		System.out.println("參數" + url.getQuery());
      		// 相對路徑構建
      		url = new URL("http://baidu.com:80/a/");
      		url = new URL(url, "b.txt");
      		System.out.println(url.toString());
      	}
      }
      
      利用URL獲取網絡資源
      package cn.woniux.url;
      
      import java.io.BufferedReader;
      import java.io.BufferedWriter;
      import java.io.FileOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.InputStreamReader;
      import java.io.OutputStreamWriter;
      import java.net.URL;
      
      /**
       * URL獲取網頁源代碼 openStream
       * 
       * @author Administrator
       *
       */
      public class UrlGetSource {
      	public static void main(String[] args) throws IOException {
      		URL url = new URL("http://www.baidu.com");
      		//獲取網絡資源
      		InputStream input = url.openStream();
      		//數據輸入流,將網絡獲取的字節流,解析爲字符流,已緩衝流輸入
      		BufferedReader br = new BufferedReader(new InputStreamReader(input, "utf-8"));	
      		//數據輸出流,讀取輸入流的字符流,利用文本流輸入到指定的文本中
      		BufferedWriter bw = new BufferedWriter(
      				new OutputStreamWriter(new FileOutputStream("baidu.html"), "utf-8"));
      		String msg = null;
      		/*將輸入流數據放入輸出流中*/
      		while ((msg = br.readLine()) != null) {
      			bw.append(msg);
      			bw.newLine();
      		}
      		/*關閉資源*/
      		bw.flush();
      		bw.close();
      		br.close();
      
      	}
      }
      

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章