1. 程式人生 > >IO流之學習(—)

IO流之學習(—)

   IO流是一種對資料進行處理的流,按照分類分為位元組流字元流。

位元組流是資料儲存在磁碟/電腦的格式,字元流是程式設計師輸入輸出的資料格式。

直白點說,位元組流是電腦看得懂,字元流是程式設計師看得懂。

位元組流和字元流兩者的相似之處很多,學透其中一種流,另一種自然也能夠駕馭。

位元組流分為輸出流(寫)和輸入流(讀)

位元組輸出流OutputStream類是一個專門進行位元組資料輸出的類。

位元組輸出流InputStream類是一個專門進行位元組資料讀取的類。

相同之處:1.兩者都是抽象類,需要它們的子類進行物件的例項化,這裡使用FileOutputStream和FileInputStream進行例項化。

2.兩者都提供了輸出/輸入的方法

3.開啟一個流,相當開啟磁碟資源進行讀寫操作,最後一定要關閉資源.close(),不然資源會洩露

位元組輸出流的子類FileOutputStream提供的方法:

1.建立或覆蓋已有檔案:public FileOutputStream(File file)throws FileNotFoundException

這是方法使用的第一次


這是方法呼叫的第二次,obviously,文字以及被覆蓋

再有,getBytes()的使用在下一章會講解

2.檔案內容追加:public FileOutputStream(File file,boolean append)throws FileNotFoundException


新增true之後,可以實現檔案內容的追加,可能有人覺得不換行很難受,使用\r\n即可,如下圖


位元組輸出流OutputStream提供三個輸出方法:

1. 輸出單個位元組:public abstract void write(int b)throws IOException

這裡需要傳入int型別的位元組

如果傳入比int範圍更大的資料型別則不行,但是byte,short型別可以,因為他們可以自動轉型成為int

2. 輸出全部位元組陣列:public abstract void write(byte[] b)throws IOException


輸出陣列的方法只能使用byte型別

,其他型別會報錯

3.輸出部分位元組陣列:public abstract void write(byte[] b,int off,int len)throws IOException

注意:int off和int len分別指輸出的起點資料長度


write方法指出,從下標為2開始,輸出資料長度為2的位元組,所以是cd

至此,IO流中的位元組流的輸出流的使用講解完成。