1、BufferedReader
URL url = new URL("http://qingni.net");
// 读取源码
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
String line;
StringBuffer sb = new StringBuffer();
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
2、InputStreamReader
URL url = new URL("http://qingni.net");
// 读取源码
//读取中文时,使用Reader类是每次读出两个字节的,不会出现中文乱码
InputStreamReader in = new InputStreamReader(url.openStream(), "UTF-8");
char[] buf = new char[2048];//缓存
StringBuffer sb = new StringBuffer();
int len = 0;
while ((len = in.read(buf)) != -1) {//当没到文档尽头继续读取
sb.append(buf, 0, len);
}
3、HttpURLConnection
String line;
StringBuffer sb = new StringBuffer();
resp.setContentType("text/plain; charset=utf-8");
try {
URL url = new URL("http://qingni.net/");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);// 使用 URL 连接进行输入
connection.setRequestMethod("GET");
// 取得网页源码
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
// 每次读取一行输出
while ((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
reader.close();
} else {
// Server returned HTTP error code.
}
connection.disconnect();
} catch (MalformedURLException e) {
} catch (IOException e) {
}