天天看點

使用FileOutputStream将資料寫入檔案 | 帶你學《Java語言進階特性》之五十三

上一篇:位元組輸出流之OutputStream | 帶你學《Java語言進階特性》之五十二

上一節中我們了解了OutputStream的相關知識,現在讓我們來一起使用其子類FileOutputStream來實作對檔案内容的寫入操作吧。

【本節目标】

通過閱讀本節内容,你将了解到FileOutputStream類對象的幾種構造方式,結合具體執行個體實作對檔案内容的寫入功能,并有意識的去關閉流對象節省系統資源。

使用FileOutputStream将資料寫入檔案

使用FileOutputStream将資料寫入檔案 | 帶你學《Java語言進階特性》之五十三

FileOutputStream類

因為最終都需要發生向上轉型的處理關系,是以對于此時的FileOutputStream子類核心的關注點就可以放在構造方法上了。

  • 【覆寫】構造方法:public FileOutputStream(File file) throws FileNotFoundException;
  • 【追加】構造方法:public FileOutputStream(File file, boolean append) throws FileNotFoundException

範例:使用FileOutputStream類實作内容輸出

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("D:"+ File.separator + "hello" + File.separator + "mldn.txt");  //1.指定要操作檔案的路徑
        if(!file.getParentFile().exists()){   //檔案不存在
            file.getParentFile().mkdirs();   //建立父目錄
        }
        OutputStream output=new FileOutputStream(file);  //2.通過子類執行個體化
        String str="www.mldn.cn";   //要輸出的檔案内容
        output.write(str.getBytes());   // 3.将字元串變為位元組數組
        output.close();   //4.關閉資源
    }
}           

本程式是采用了最為标準的形式實作了輸出的操作處理,并且在整體的處理之中,隻是建立了檔案的父目錄,但是并沒有建立檔案,而在執行後發現檔案可以自動幫助使用者建立。另外要注意的是,由于OutputStream的子類也屬于AutoCloseable的接口子類,是以對于close()方法也可以簡化使用。

範例:自動關閉處理

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
        File file = new File("D:"+ File.separator + "hello" + File.separator + "mldn.txt");  //1.指定要操作檔案的路徑
        if(!file.getParentFile().exists()){   //檔案不存在
            file.getParentFile().mkdirs();   //建立父目錄
        }
        try(OutputStream output=new FileOutputStream(file,true)) { //2.通過子類執行個體化
            String str="www.mldn.cn\r\n";   //要輸出的檔案内容
            output.write(str.getBytes());   // 3.将字元串變為位元組數組
        }catch(IOException e) {
            e.printStackTrace();
        }
    }
}           

是否使用自動關閉取決于項目的整體結構,另外還需要提醒的是,整個的程式裡面最終是輸出了一組的位元組資料,但是千萬不要忘記了,OutputStream類之中定義的輸出方法一共有三種。

想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。

本内容視訊來源于

阿裡雲大學 下一篇:有出有入:使用位元組輸入流 | 帶你學《Java語言進階特性》之五十四 更多Java面向對象程式設計文章檢視此處