標籤:
最後一般是轉換成BufferedReader來讀取字串
InputStream inStream = request.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inStream));
.InputStream、OutputStream
處理位元組流的抽象類別
InputStream 是位元組輸入資料流的所有類的超類,一般我們使用它的子類,如FileInputStream等.
OutputStream是位元組輸出資料流的所有類的超類,一般我們使用它的子類,如FileOutputStream等.
2.InputStreamReader OutputStreamWriter
處理字元流的抽象類別
InputStreamReader 是位元組流通向字元流的橋樑,它將位元組流轉換為字元流.
OutputStreamWriter是字元流通向位元組流的橋樑,它將字元流轉換為位元組流.
3.BufferedReader BufferedWriter
BufferedReader 由Reader類擴充而來,提供通用的緩衝方式文本讀取,readLine讀取一個文本行,
從字元輸入資料流中讀取文本,緩衝各個字元,從而提供字元、數組和行的高效讀取。
BufferedWriter 由Writer 類擴充而來,提供通用的緩衝方式文本寫入, newLine使用平台自己的行分隔字元,
將文本寫入字元輸出資料流,緩衝各個字元,從而提供單個字元、數組和字串的高效寫入。
InputStream能從來源處讀取一個一個byte,
所以它是最低級的,
例:
[java] view plain copy
- import <a href="http://lib.csdn.net/base/17" class=‘replace_word‘ title="Java EE知識庫" target=‘_blank‘ style=‘color:#df3434; font-weight:bold;‘>Java</a>.io.*;
- public class Main {
- public static void main(String[] args) {
-
- try {
- FileInputStream fis=new FileInputStream("d://desktop//test.txt");
- int i;
-
- try {
- while((i=fis.read()) != -1){
- System.out.println(i);
- }
- /*假設test.txt檔裡頭只有一個文字 "陳" ,且其編碼為 utf8
- * 輸出
- * 233
- 153
- 179
- */
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
-
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
- }
InputStreamReader
InputStreamReader封裝了InputStream在裡頭,
它以較進階的方式,一次讀取一個一個字元,
下例是假設有一個編碼為utf8的文檔,
其內容只有一個中文字 "陳"
[java] view plain copy
- import java.io.*;
- public class Main {
- public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
-
- FileInputStream fis=new FileInputStream("d://desktop//test.txt");
- try {
- InputStreamReader isr=new InputStreamReader(fis,"utf8");
- int i;
- while((i=isr.read()) != -1){
- System.out.println((char)i); //輸出 陳
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
- }
BufferedReader
BufferedReader則是比InputStreamReader更進階,
它封裝了StreamReader類,
一次讀取取一行的字元
[java] view plain copy
- import java.io.*;
- public class Main {
- public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {
-
- FileInputStream fis=new FileInputStream("d://desktop//test.txt");
-
- try {
- InputStreamReader isr=new InputStreamReader(fis,"utf8");
- BufferedReader br=new BufferedReader(isr);
-
- String line;
- while((line=br.readLine()) != null){
- System.out.println(line);
- }
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- }
- }
InputStream 轉換 InputStreamReader再轉換BufferedReader