Java 中request.getInputStream()和BufferedReader 和 InputStreamReader 用法


關於request.getInputStream():

http://www.cnblogs.com/steve-cnblogs/articles/5420198.html

瀏覽器 采用了一種編碼方式,即 "multipart/form-data" 的編碼方式,采用這種方式,瀏覽器可以很容易將表單內的數據和文件放在一起發送.這 種編碼方式先定義好一個不可能在數據中出現的字符串作為 分界符,然后用它將各個數據段分開,而對於每個數據段都對應着 HTML 頁面表單 中的一個 Input 區,包括一個 content-disposition 屬性,說明了這個數據段的一些信息,如果這個數據段的內容是一個文件,還會有 Content-Type 屬性,然后就是數據本身. 我們可以用request.getInputStream()或request.getReader()得到 提交的數據.

 

BufferedReader 類

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();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM