16. Java IO: FileOutputStream

想要查看此教程的目錄請點擊:Java IO教程目錄貼地址


FileOutputStream可以以流的形式寫出一個文件。他是OutputStream的子類。

OutputStream例子

下面是FileOutputStream的簡單例子:

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

while(moreData) {
  int data = getMoreData();
  output.write(data);
}
output.close();

OutputStream的構造方法

OutputStream包含了一些使用的構造方法,我會介紹比較常用的一些構造方法。

第一個構造方法需要傳入一個String類型的參數,即你要寫出數據的目標文件路徑:

String path = "C:\\users\\jakobjenkov\\data\\datafile.txt";

FileOutputStream output = new FileOutputStream(path);

第二個構造方法為傳入一個File類型的參數,它指向的是系統上的一個文件:

String path = "C:\\users\\jakobjenkov\\data\\datafile.txt";
File   file = new File(path);

FileOutputStream output = new FileOutputStream(file);

覆蓋文件和增量寫入文件

如果你創建了一個FileOutputStream,并準備輸出到一個已經存在的文件,這時你不得不去決定,是要覆蓋這個文件還是增量的去寫入。這取決于如何使用構造方法。

如果構造方法只傳入一個參數也就是文件全名,那么就會覆蓋已存在的文件:

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

然后還有一個兩個參數的構造方法,一個參數是文件名,還有一個參數為boolean類型,它表明了你是想覆蓋還是想增量寫入。下面是兩個例子:

OutputStream output = new FileOutputStream("c:\\data\\output-text.txt", true); //增量寫入文件

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

write()

這個方法需要傳入一個int類型的你想要寫出的數據。

寫字節數組

由于FileOutputStream是OutputStream的子類,所以你也可以寫字節數組,來替代每次僅寫一個字節。

flush()

當你把數據寫入FileOutputStream,數據有可能緩存在計算機的內存中,會晚一些寫入磁盤。例如每當有“X”數量的數據需要寫入時,或者FileOutputStream流已經關閉。
如果你想確定在流未關閉并且所有的數據已經寫入磁盤,那么你可以調用flush()方法。

close()

和其他的OutputStream一樣,FileOutputStream也需要早使用后關閉它。只要調用close()方法即可。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評論 18 399
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,142評論 0 62
  • 概述: 1、IO流:即Input Output的縮寫。 2、特點:1)IO流用來處理設備間的數據傳輸。2)Java...
    玉圣閱讀 1,270評論 0 3
  • 看完電影,與行的朋友說:“多想早點結束。” 我有些疑惑,問:“為什么?” 她毫不猶豫地回答,“太壓抑了。” 我點點...
    何小威閱讀 682評論 0 3
  • 姓名:顧君 單位:寧波大發化纖有限公司 學習組:第234期努力一組 【日精進打卡第186天】 【知~學習】 《六項...
    JASONGU_2f28閱讀 180評論 0 0