IO 字元流 位元組流

2021-09-02 13:38:55 字數 2945 閱讀 9793

直接和檔案互動,沒有快取區。所以即便沒有close(),資料也已寫入檔案中。

操作的是位元組(byte),可對任何檔案進行讀寫操作

private static void write() throws ioexception

private static void read() throws ioexception

private static void copy() throws ioexception

fis.close();

fos.close();

}

有快取,字元都是在快取中儲存的,傳輸和檔案儲存的其實還是位元組。

乙個字元char(unicode)包含2個位元組byte。操作的是char

字元流只能處理字元或者字串,而位元組流可以處理任何二進位制檔案

writer.write(「123」)後,必須writer.close()或者writer.flush()強制將快取中的字元重新整理到位元組中,才能完成檔案寫入。

reader.read(char c),從位元組流讀取字元,不用reader.close()也能獲取c的內容。

* 字元流不能支援jpg格式的write

* @throws ioexception

*/private static void readpic() throws ioexception

fis.close();

fos.close();

}inputstreamreader傳入位元組流,讀取到緩衝區變成成字元流,需要charset指定字符集,父類是reader,子類有filereader。所以filereader.read()呼叫的就是inputstreamreader中的read()方法

構造方法需要傳入inputstream位元組流

int read(char c)將inputstream位元組流按照charset字符集讀取到緩衝區字元c中。

乙個檔案只能同時有乙個流進行read操作,下面這段**執行結構只有inputstreamreader會輸出檔案內容,因為inputstreamreader比fileinputstream先讀取檔案,所以占用了通道。同理,如果isr.read()在fis.read()後面,則只有fileinputstream會輸出內容。

private static void read() throws  ioexception
outputstreamwriter獲取outputstream,將字串或者char寫入輸出流,即緩衝區字元流轉換成位元組流寫入到outputstream中。write方法是父類是writer,子類有filewriter。

構造方法傳遞outputstream 

write()的方法有

}下面這段**,兩個字串都能寫入檔案,最後結果是  我是中國人abc

private static void write() throws ioexception

IO 字元流 位元組流

io流 流按運算元據分為兩種 位元組流與字元流 流按流向分為 輸入流 輸出流 位元組流的抽象基類 inputstream outputstream 字元流的抽象基類 reader witer 這四個類派生出來的子類名稱都是以其父類名作為子類名的字尾。字元流 寫入流writer 用於操作檔案的writ...

I O流 字元流和位元組流

一 位元組流 1 位元組輸出流 outputstream 往指定檔案寫資料 常用方法 close 釋放資源 flush 重新整理流,並強制寫出所有的緩衝的輸出位元組 write byte b 將指定的 byte 陣列寫入到輸出流 write byte b,int off,int len 將指定byt...

io位元組流和字元流

2014 11 30 晚上 位元組流system.in是基本的 inputstream 流,system.out 是基本的 outputstream 流,如果要實現字元流從控制台讀入 bufferedreader bufferedreader new bufferreader reader inpu...