Java 中BufferedReader & InputStreamReader 用法
BufferedReader 由Reader類擴充套件而來,提供通用的緩衝方式文字讀取,而且提供了很實用的readLine,讀取一個文字行,從字元輸入流中讀取文字,緩衝各個字元,從而提供字元、陣列和行的高效讀取。
一般用法:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("ming.txt")));
String data = null;
while((data = br.readLine())!=null)
{
System.out.println(data);
}
示例如下:
public static String getHtml(String url) throws IOException {
String source ="";
String line ="";
URL _url = new URL(url);
InputStream inStream = _url.openStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inStream,"UTF-8"));
while((line = bufferedReader.readLine())!=null) {
source += line;
}
return source;
}
InputStreamReader 類
是位元組流通向字元流的橋樑,封裝了InputStream在裡頭, 它以較高階的方式,一次讀取一個一個字元,以文字格式輸入 / 輸出,可以指定編碼格式;
一般用法:
InputStreamReader isr = new InputStreamReader(new FileInputStream("ming.txt"));
while((ch = isr.read())!=-1)
{
System.out.print((char)ch);
}
示例如下:
public static String getHtmlSource( String url) throws MalformedURLException, IOException {
URLConnection uc = new URL(url).openConnection();
uc.setConnectTimeout(10000);
uc.setDoOutput(true);
InputStream in = new BufferedInputStream(uc.getInputStream());
InputStreamReader rd = new InputStreamReader(in,"gb2312");
int c = 0;
StringBuffer temp = new StringBuffer();
while((c = rd.read())!= -1){
temp.append((char)c);
}
in.close();
return temp.toString();
}