.InputStream、OutputStream
處理字節流的抽象類
InputStream 是字節輸入流的所有類的超類,一般我們使用它的子類,如FileInputStream等.
OutputStream是字節輸出流的所有類的超類,一般我們使用它的子類,如FileOutputStream等.
2.InputStreamReader OutputStreamWriter
處理字符流的抽象類
InputStreamReader 是字節流通向字符流的橋梁,它將字節流轉換為字符流.
OutputStreamWriter是字符流通向字節流的橋梁,它將字符流轉換為字節流.
3.BufferedReader BufferedWriter
BufferedReader 由Reader類擴展而來,提供通用的緩沖方式文本讀取,readLine讀取一個文本行,
從字符輸入流中讀取文本,緩沖各個字符,從而提供字符、數組和行的高效讀取。
BufferedWriter 由Writer 類擴展而來,提供通用的緩沖方式文本寫入, newLine使用平台自己的行分隔符,
將文本寫入字符輸出流,緩沖各個字符,從而提供單個字符、數組和字符串的高效寫入。
InputStream能從來源處讀取一個一個byte,
所以它是最低級的,
例:
import <a href="http://lib.csdn.net/base/javase" class='replace_word' title="Java SE知識庫" 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的文檔,
其內容只有一個中文字 "陳"
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類,
一次讀取取一行的字符
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(); } } }