1. 程式人生 > >URL類與URLConnection類使用程式碼演示

URL類與URLConnection類使用程式碼演示

URL類演示

URLDemo程式演示這些方法的使用以及一個URL的不同部分

/*URLDemo.java
 *演示URL類的用法。
 */
package ch18;
import java.net.*;
import java.io.*;

public class URLDemo {
  public static void main(String[] args) {
    try {
      URL url = new URL
("http://www.lovoinfo.com/courseware/index.html?title=btw#mid");
      System.out.println("URL為:" + url.toString());
      System.out.println("協議為:" + url.getProtocol());
      System.out.println("授權部分為: " + url.getAuthority());
      System.out.println("檔名為:" + url.getFile());
      System.out.println("主機為:" + url.getHost());
      System.out.println("路徑為:" + url.getPath());
      System.out.println("埠為" + url.getPort());
      System.out.println("預設埠為:" + url.getDefaultPort());
      System.out.println("查詢字串為:" + url.getQuery());
      System.out.println("引用錨點為:" + url.getRef());
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

效果如下圖:

下面演示瞭如何讀取網頁並儲存在本地html檔案中

package com.work.net.url;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import com.work.net.util.CloseUtil;//這個工具類只是我寫來用於關流的

public class URLDemo02 {

	public static void main(String[] args) {
		URL url = null;
		BufferedWriter writer = null;
		BufferedReader reader = null;
		
		String path = "d://files/baidu.html";
		try {
			File file = new File(path);
			url = new URL("http://www.baidu.com");
			
			//通過該url去獲取具體的輸入流
			reader =  new BufferedReader(new InputStreamReader(url.openStream(), "utf-8"));
			writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
			
			int lenth = 0;
			char [] data = new char[1024];
			//邊讀邊寫
			while((lenth = reader.read(data)) != -1) {
				writer.write(data, 0, lenth);
			}
			writer.flush();
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			CloseUtil.closeIO(writer,reader);
		}
	}
}

URLConnection類演示

URLConnectionDemo程式連線到一個URL(http://www.lovoinfo.com),然後讀出網站首頁的資訊。

/*URLConnectionDemo.java
 * URLConnection使用演示
 */
package ch18;
import java.net.*;
import java.io.*;

public class URLConnectionDemo {
  public static void main(String[] args) {
    try {
      URL url = new URL("http://www.sanxuau.com");
      URLConnection urlConnection = url.openConnection();
      HttpURLConnection connection = null;
      if (urlConnection instanceof HttpURLConnection) {
        connection = (HttpURLConnection) urlConnection;
      } else {
        System.out.println("請輸入一個HTTP URL。");
        return;
      }
      BufferedReader in = new BufferedReader(new InputStreamReader(
          connection.getInputStream()));
      String urlString = "";
      String current;
      while ((current = in.readLine()) != null) {
        urlString += current;
      }
      System.out.println(urlString);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}