上一節,我們學習了檔案位元組輸出流的建構方法,這一節,我們繼續學習如何使用輸出流寫位元組以及關閉流。
輸出流的目的是提供通往目的地的通道,程式可以透過這個通道將程式中的資料寫入到目的地,而檔案位元組流可以呼叫從父類繼承的write方法順序地寫檔案。 FileOutStream流順序地在文件寫入內容,即只要不關閉流,每次調用write方法就順序地寫入內容,直到流關閉。
位元組輸出流的write方法以位元組為單位向目的地寫入資料。
輸出流呼叫該方法向目的地寫入單一位元組。
輸出流呼叫該方法向目的地寫入一個位元組數組。
給定位元組數組中起始於偏移量off處取len個位元組寫到目的地。
關閉輸出流。
注意:FileOutputStream流順序地寫文件,只要不關閉流,每次調用write方法就順序地向目的地寫入內容,直到流關閉。
在作業系統把程式所寫到輸出流上的那些位元組保存到磁碟上之前,有時會被存放在記憶體緩衝區中,透過呼叫close()方法,可以確保作業系統把流緩衝區的內容寫到它的目的地,也就是關閉輸出流可以把該流所用的緩衝區的內容沖掉,通常沖洗到磁碟檔案上。
例如:
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){byte[]a=新年快樂.getBytes();byte[]b=HappyNewYear.getBytes();Filefile=newFile(a.txt);//輸出的目的地try{OutputStreamout=newFileOutputStream(file);//指向目的地的輸出流System.out.println(file.getName()+的大小:+file.length()+位元組);out.write( a);//向目的地寫資料out.close();out=newFileOutputStream(file,true);//準備向文件尾加內容System.out.println(file.getName()+的大小:+file .length()+位元組);out.write(b,0,b.length);System.out.println(file.getName()+的大小:+file.length()+位元組);out. close();}catch(IOExceptione){System.out.println(Error+e);}}}
運行結果如下:
a.txt的大小:0位元組a.txt的大小:12位元組a.txt的大小:26位元組