前幾節我們學習了文件位元組輸入流,那麼既然有文件字節輸入流,自然也有相對應的文件字節輸出流,這一節我們就來學習文件字節輸出流。
使用輸出流通常包括4個基本步驟:
本節透過學習文件位元組輸出流熟悉上述4個基本步驟。
如果對檔案寫入需求比較簡單,那麼可以使用FileOutputStream類別(檔案位元組輸出流),它是OutputStream類別的子類別(以位元組為單位寫入內容),而該類別的實例方法都是從OutputStream類別繼承來的。
我們可以使用FileOutputStream類別的下列具有刷新功能的建構方法來建立指向檔案的輸出流。
FileOutputStream(Stringname);FileOutputStream(Filefile);
第一個建構方法使用給定的檔案名稱name來建立FileOutputStream流;第二個建構方法使用File物件建立FileOutputStream流。參數name和file指定的檔案稱為輸出流的目的地。
FileOutputStream輸出流開通一個到達文件的通道(目的地就是這個文件,輸出流指向這個文件)。
注意:如果輸出流指向的文件不存在,Java就會創建該文件,如果指向的文件是已存在的文件,輸出流將刷新該文件(使得文件的長度為0)。
除此之外,與創建輸入流相同的是,創建輸出流時,可能會出現錯誤(被稱為異常),例如,輸出流試圖要寫入的文件可能不允許操作或有其他受限等原因。所以必須在try-catch語句中的try區塊部分建立輸出流,在catch區塊部分偵測並處理這個異常。
例如,建立指向名為destin.txt的輸出流out:
try{FileOutputStreamout=newFileoutputStream(destin.txt);//建立指向檔案destin.txt的輸出流}catch(IOExceptione){System.out.println(Filewriteerror:+e);}
或
Filef=newFile(destin.txt);//指定輸出流的目的地try{FileOutputStreamout=newFileOutputStream(f);//建立指向目的地的輸出流}catch(IOExceptione){System.out.println(Filewrite:+ e);}
我們可以使用FileOutputStream類別的下列能選擇是否具有刷新功能的建構方法來建立指向檔案的輸出流。
FileOutputStream(Stringname,booleanappend);FileOutputStream(Filefile,booleanappend);
當用建構方法建立指向一個文件的輸出流時,如果參數append取值true,輸出流不會刷新所指向的文件(假如文件已存在),輸出流的write的方法將從文件的末尾開始向文件寫入數據,參數append取值false,輸出流將刷新所指向的文件(假如文件已經存在)。