基於流的I O 流與緩衝

2021-05-02 06:30:22 字數 517 閱讀 6555

基於流的操作最終都會呼叫read或write進行操作。即流的內部封裝了這兩個系統呼叫。

緩衝分如下三種:

全緩衝(相應巨集_io_full_buf):直到緩衝區被填滿,菜呼叫系統i/o函式。磁碟檔案讀寫通常是全緩衝的。

行緩衝(相應巨集_io_line_buf):直到遇到換行符'/n',才呼叫系統i/o函式。標準輸入輸出都是行緩衝的。

無緩衝(相應巨集_io_unbuffered):沒有緩衝,資料立即讀入或輸出到外存檔案和裝置上。例如標準出錯。相應巨集_io_unbuffered

在判斷流用的是那種緩衝時,應將檔案流物件中的緩衝區標誌與該巨集「與」操作,判斷結果是否為0就行了。

範例://buf.c

#include

int main(void)

gcc buf.c -o buf

./buf

看看結果

然後看看重定向對結果的影響

./buf out.txt 2>err.txt

無論是否使用重定向,標準出錯都是無緩衝的 。

IO流 位元組緩衝流,字元緩衝流

處理流 裝飾流 位元組緩衝流,字元緩衝流 用於提高位元組流的效能 bufferedinputstream,bufferedoutputstream 位元組緩衝流 bufferedinputstream is newbufferedinputstream new fileinputstream fil...

I O基礎流 緩衝流

io流 字元流 轉換流 以下三句話功能相同 1 inputstreamreader isr new inputstreamreader new fileinputstream a.txt 預設字符集。2 inputstreamreader isr new inputstreamreader new ...

IO流5 IO流 緩衝流的使用

bufferedinputstream bufferedoutputstream bufferedreader bufferedwriter 提供流的讀取 寫入的速度 提高讀寫速度的原因 內部提供了緩衝區 實現非文字檔案的複製 test public void testbufferedstream ...