Java IO(五):FileOutputStream

FileOutPutStream 可以往文件裏寫入字節流,它是 OutputStream 子類,所以你可以像使用 OutputStream 那樣使用 FileOutputStream。

OutputStream output = nwe FileOutputStream("c:\\text.txt");
while(hasMoreData()){
    int data = getMoredata();
    output.write(data);
}
output.close();

FileOutputStream 的 write() 方法取一個包含了帶寫入字節的 int 變量作爲參數進行寫入。
FileOutputStream 也有其他的構造函數,允許你通過不同的方式寫文件。

文件內容的覆蓋 Override VS 追加Appending

當你創建了一個指向已存在文件的 FileOutputStream,你可以選擇覆蓋整個文件,或者在文件末尾追加內容。通過使用不同的構造函數可以閃現不同的目的。

其中一個構造函數取文件名作爲參數,會覆蓋任何此文件名指向的文件。

OutputStream out = new FileOutputStream("c:\\data\\text.txt");

另外一個構造函數取 2 個參數:文件名和一個布爾值,布爾值表示你是否需要覆蓋文件。

OutputStream output = new FileOutputStream("c:\\data\\text.txt", true) //在文件末尾追加數據

OutputStream output = new FileOutputStream("c:\\dadta\\text.txt", false) // 覆蓋該文件

寫入字節數組

既然 FileOutputStream 是 OutputStream 的子類,所以你可以往 FileOutputStream 中寫入字節數組,而不需要每次只寫入一個字節。

flush()

當你往 FileOutputStream 裏寫數據的時候,這些數據有可能會緩存在內存中。在之後的某個時間,比如,每次都只有 X 份數據可寫,或者 FileOutputStream 關閉的時候,纔會真正的寫入磁盤。當 FileOutputStream 沒被關閉,而你又想確保寫入到 FileOutputStream 中的數據寫入到磁盤,可以調用 flush() 方法,該方法可以確保所有寫入到 FileOutputStream 的數據全部寫入到磁盤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章