天天看點

對輸入輸出流的總結

字元流:

Writer:寫

     |---FileWriter(字元輸入流) 

       1.new FileWriter("1.txt",true) 如果1.txt在目前目錄下不存在,就自動建立。

如果已經存在,true,表示我們接着已經存在的檔案的最末尾處續寫。

     |---BufferedWriter(将文本寫入字元輸出流,緩沖各個字元,進而提供單個字元、

     數組和字元串的高效寫入)這是對FileWriter功能的擴充。

   1.new BufferedWriter(new FileWriter("1.txt",true));

   2.其方法write("ksjflsdk");這是寫入到緩沖區中,并沒有直接寫到1.txt檔案中,

    是以我們可以通過兩個方法将緩沖區中的字元刷入到檔案中,flush(),和close()

    方法。

   3.newLine();加入換行符,對不同平台都支援。

|----BufferedReader(從字元輸入流中讀取文本,緩沖各個字元,進而實作字元、數組和行的高效讀取).

1、其String  readLine();方法是每次讀取一行文本(當讀取時遇到換行符時就會認為這是一行的結束符,注意,并不讀入換行符;如果一直讀不到換行符,那麼它就會一直等待)。當讀取到文本檔案的最後時會傳回null,是以可以用這個條件來控制其讀寫的循環。

While((str=readLine())!=null)System.out.println(str);這樣就可以讀取完整個檔案。

     |---OutputStreamWriter(是字元流通向位元組流的橋梁)

    1. new BufferedWriter(new OutputStreamWriter(System.out));利用BufferedWriter 對OutputStreamWriter進行緩沖。New OutputStreamWriter()中可以接收的參數

是OutputStream流對象。

Reader:讀

     |---InputSteamReader(是位元組流通向字元流的橋梁,通常用于網絡中,因為在網絡中是位元組流的傳輸,當我們需要将漢字輸出時,就需要将位元組流轉換成字元流)

1、new BufferedReader(new InputStreamReader(InputStream in));

     |---FileReader(讀取文本檔案)

1、new BufferedReader(new FileReader(“demo.txt”));

位元組流:

InputStream讀

 |---FileInputStream

1、對位元組流檔案的讀取,如圖檔檔案。

2、New FileInputStream(File f);

     |---DataInputStream

1、資料輸入流允許應用程式以與機器無關方式從底層輸入流中讀取基本 Java 資料類型。

2、New DataInputStream(InputStream in);對讀取的資料進行緩沖

3、String readUTF();

 |---BufferedInputStream(在建立 BufferedInputStream 時,會建立一個内部緩沖區數組)

1、new BufferedInputStream(new FileInputStream(File f));

2、對FileInputStream的緩沖,加快讀入資料。

OutputStream 寫

 |---FileOutputStream

1、對位元組流檔案的寫出,如圖檔檔案。

2、FileOutputStream fos=new FileOutputStream("1.bmp”);

     |---DataOutputStream

1、常用于網絡傳輸資料

2、New DataOutputStream(OutputStream out)

3、Void writeUTF(String str)

          以與機器無關方式使用 UTF-8 修改版編碼将一個字元串寫入基礎輸出流。

 |---BufferedOutputStream(該類實作緩沖的輸出流。通過設定這種輸出流,應用程式就可以将各個位元組寫入底層輸出流中,而不必針對每次位元組寫入調用底層系統)

1、同樣用于網絡上的發送位元組流資料

2、new BufferedOutputStream(OutputStream out)

3、New BufferedOutputStream(new FileOutputStream(“e:\\1.jpg”));