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流中的位元組流的輸出流的使用講解完成。