天天看點

BufferedOutputStreamBufferedOutputStream

BufferedOutputStream

介紹

繼承父親的成員方法

  • java.io.OutputStream

    這個抽象類是表示位元組輸出流的所有類的超類。 輸出流接收輸出位元組并将其發送到某個接收器。

    定義了一些子類共性的成員方法:

    1.public abstract void write(int b)throws IOException

    将指定的位元組寫入此輸出流。 write的一般合同是将一個位元組寫入輸出流

    2.public void write(byte[] b)throws IOException

    将b.length位元組從指定的位元組數組寫入此輸出流。 write(b)的一般合約是應該具有與電話write(b, 0, b.length)完全相同的效果。

    3.public void write(byte[] b,int off,int len)throws IOException

    從指定的位元組數組寫入len位元組,從偏移off開始輸出到此輸出流。

    write(b, off, len)的一般合同是數組b中的一些位元組按順序寫入輸出流; 元素b[off]是寫入的第一個位元組, b[off+len-1]是此操作寫入的最後一個位元組。

  1. public void flush()throws IOException

    重新整理此輸出流并強制任何緩沖的輸出位元組被寫出。

    flush的一般合同是,呼叫它表明,如果先前寫入的任何位元組已經通過輸出流的實作進行緩沖,則這些位元組應該立即被寫入到它們的預定目的地。

    5.public void close()throws IOException

    關閉此輸出流并釋放與此流相關聯的任何系統資源。 close的一般合同是關閉輸出流。 封閉流不能執行輸出操作,無法重新打開。

    構造方法:

    *BufferedOutputStream(OutputStream out)

    建立一個新的緩沖輸出流,以将資料寫入指定的底層輸出流。

    BufferedOutputStream(OutputStream out, int size)

    建立一個新的緩沖輸出流,以便以指定的緩沖區大小将資料寫入指定的底層輸出流。

    OutputStream out:位元組輸出流

  • 我們可以傳遞FileOutPutStream,緩沖流會給FileOutputStream增加一個緩沖區提高寫入效率
  • int size:指定緩沖區的大小,不指定預設
  • 使用步驟
  • 1.建立File OutputStream,構造方法中綁定目的地
  • 2.建立Bufferedoutputstream對象,構造方法中傳遞fileoutputstream對象,提高對象效率
  • 3.調用Bufferedoutputstream對象中的write,把資料寫入到内部緩沖區中
  • 4.調用bufferedoutpputstream對象中flush,把内部緩沖區的資料,重新整理到檔案中
  • 5.釋放資源(會先調用flush方法重新整理資料,第四步可以省略)

代碼塊

public class Demo01BufferedOutputStream {
    public static void main(String[] args) throws IOException {
        FileOutputStream fo=new FileOutputStream("src\\cn\\itcast\\IO\\BufferedStream\\1.txt");
        BufferedOutputStream bo=new BufferedOutputStream(fo);
        bo.write("nihao".getBytes(),0,"nihao".length());
        bo.flush();
        bo.close();
    }

}
           

Writer

介紹:

字元型緩沖輸出

構造方法

BufferedWriter(Writer out)

建立使用預設大小的輸出緩沖區的緩沖字元輸出流。

BufferedWriter(Writer out, int sz)

建立一個新的緩沖字元輸出流,使用給定大小的輸出緩沖區。

成員方法

void close()

關閉流,先重新整理。

void flush()

重新整理流。

void newLine()

寫一行行分隔符。

void write(char[] cbuf, int off, int len)

寫入字元數組的一部分。

void write(int c)

寫一個字元

void write(String s, int off, int len)

寫一個字元串的一部分。

  • 使用步驟,
  • 1.建立字元緩沖輸出流對象,構造方法中傳遞字元輸出流
  • 2.調用字元緩沖輸出流中的方法write,把資料寫入到記憶體緩沖區中
  • 3.調用字元緩沖輸出流中的方法flush,把記憶體緩沖區中的資料,重新整理到檔案中
  • 4.釋放資源

代碼塊

public class DemoBufferedWriter {
    public static void main(String[] args)throws IOException {
        BufferedWriter bw=new BufferedWriter(new FileWriter("src\\cn\\itcast\\IO\\BufferedStream\\bufferedwriter.txt"));
        for (int i = 0; i < 10; i++) {
            bw.write("你好,請吃飯!");
            bw.newLine();//轉行
        }
        bw.flush();
        bw.close();
        System.out.println();
        /*public void println() {
        newLine();
         }*/
    }
}