首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 網路程式設計實戰:使用 URLConnection 讀取並列印網頁內容

     編輯:Java 綜合教學

Java 網路程式設計實戰:使用 URLConnection 讀取並列印網頁內容

本文示範一個經典的入門級練習:透過 Java 網路 API 獲取並列印網頁原始碼。核心類為 java.net.URL 與 java.net.URLConnection,搭配緩衝讀取器高效處理輸入流。

完整代碼範例

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

public class URLReader {
    public static void main(String[] args) {
        System.out.println(getContent());
    }

    private static String getContent() {
        InputStream in = null;
        URLConnection connection = null;
        InputStreamReader readerStream = null;
        StringBuffer resultBuffer = new StringBuffer();
        BufferedReader readerBuff = null;
        try {
            URL url = new URL("https://www.baidu.com");
            connection = url.openConnection();
            in = connection.getInputStream();
            readerStream = new InputStreamReader(in);
            readerBuff = new BufferedReader(readerStream);
            String temp = null;
            while ((temp = readerBuff.readLine()) != null) {
                resultBuffer.append(temp + "\n");
            }
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 關閉資源,避免洩漏
            try {
                if (in != null) in.close();
                if (readerStream != null) readerStream.close();
                if (readerBuff != null) readerBuff.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return resultBuffer.toString();
    }
}

關鍵步驟解析

  1. 建立 URL 物件:指定目標網址(此處為百度首頁)。
  2. 開啟連線:呼叫 url.openConnection() 取得 URLConnection 實例。
  3. 獲取輸入流:透過 connection.getInputStream() 讀取伺服器返回的資料流。
  4. 轉換為字符流:使用 InputStreamReader 將位元組流轉為字符流,指定編碼可避免亂碼。
  5. 緩衝讀取:套用 BufferedReader 按行讀取,效能優於單字符讀取。
  6. 資源釋放:在 finally 區塊中依序關閉所有流,確保不佔用系統資源。

進階提示

  • 實際專案中建議使用 try-with-resources(Java 7+)自動管理資源關閉。
  • 若需處理 HTTPS、設定請求頭、超時時間或代理,可進一步配置 HttpURLConnection。
  • 大型網頁建議採用非阻塞 I/O(NIO)或異步 HTTP 客戶端(如 Apache HttpClient、OkHttp)以提升併發效能。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved