本文示範一個經典的入門級練習:透過 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();
}
}
url.openConnection() 取得 URLConnection 實例。connection.getInputStream() 讀取伺服器返回的資料流。InputStreamReader 將位元組流轉為字符流,指定編碼可避免亂碼。BufferedReader 按行讀取,效能優於單字符讀取。finally 區塊中依序關閉所有流,確保不佔用系統資源。try-with-resources(Java 7+)自動管理資源關閉。HttpURLConnection。