FileOutputStream概述

一 FileOutputStream概述

文件輸出流是用於將數據寫入File或FileDescriptor的輸出流。 文件是否可用或是否可以創建取決於底層平臺。 特別是某些平臺允許一次僅打開一個文件以供寫入FileOutputStream (或其他文件寫入對象)。 在這種情況下,如果涉及的文件已經打開,則此類中的構造函數將失敗。

二 FileOutputStream的構造方法

1. public FileOutputStream(String name) throws FileNotFoundException

1)作用

創建文件輸出流以寫入具有指定名稱的文件。 創建一個新的FileDescriptor對象來表示此文件連接。

2)參數

name - 依賴於系統的文件名。

3)異常

FileNotFoundException - 如果文件存在但是是目錄而不是常規文件,則不存在但無法創建,或者由於任何其他原因無法打開。
SecurityException - 如果存在安全管理器且其 checkWrite方法拒絕對該文件的寫訪問權。

2. public FileOutputStream​(String name, boolean append) throws FileNotFoundException

1)作用

創建文件輸出流以寫入具有指定名稱的文件。 如果第二個參數是true ,則字節將寫入文件的末尾而不是開頭,以追加的方式寫入。 創建一個新的FileDescriptor對象來表示此文件連接。

2)參數 
name - 與系統相關的文件名 
append - 如果是 true ,那麼字節將被寫入文件的末尾而不是開頭,以追加的方式寫

3)異常

FileNotFoundException - 如果文件存在但是是目錄而不是常規文件,則不存在但無法創建,或者由於任何其他原因無法打開。 
SecurityException - 如果存在安全管理器且其 checkWrite方法拒絕對該文件的寫訪問權。

3. public FileOutputStream(File file)throws FileNotFoundException

1)作用

創建文件輸出流以寫入由指定的File對象表示的文件。 創建一個新的FileDescriptor對象來表示此文件連接。

2)參數 

file - 要寫入的文件。 

3)異常 
FileNotFoundException - 如果文件存在但是是目錄而不是常規文件,則不存在但無法創建,或者由於任何其他原因無法打開 
SecurityException - 如果存在安全管理器且其 checkWrite方法拒絕對該文件的寫訪問權。 

4. public FileOutputStream(File file, boolean append)throws FileNotFoundException

1)作用

創建文件輸出流以寫入由指定的File對象表示的文件。 如果第二個參數是true ,則字節將寫入文件的末尾而不是開頭。 創建一個新的FileDescriptor對象來表示此文件連接。 

2)參數 
file - 要寫入的文件。 
append - 如果是 true ,那麼字節將被寫入文件的末尾而不是開頭 

3)異常 
FileNotFoundException - 如果文件存在但是是目錄而不是常規文件,則不存在但無法創建,或者由於任何其他原因無法打開 
SecurityException - 如果存在安全管理器且其 checkWrite方法拒絕對該文件的寫訪問權。 

5. public FileOutputStream(FileDescriptor fdObj)

1)作用

創建要寫入指定文件描述符的文件輸出流,該文件描述符表示與文件系統中實際文件的現有連接。 

2)參數 
fdObj - 要寫入的文件描述符 
3)異常 
SecurityException - 如果存在安全管理器且其 checkWrite方法拒絕對文件描述符的寫訪問權

三 常用方法

1. public void write(int b) throws IOException
1)作用
將指定的字節寫入此文件輸出流。 實現write的方法OutputStream 。  
2)參數 
b - 要寫入的字節。 
3)異常 
IOException - 如果發生I / O錯誤。

2. public void write(byte[] b) throws IOException

1)作用
將指定字節數組中的 b.length個字節寫入此文件輸出流。  
2)參數 
b - 數據。 
3)異常 
IOException - 如果發生I / O錯誤。 

3. public void write(byte[] b, int off, int len) throws IOException

1)作用
將從偏移量爲 off的指定字節數組中的 len字節寫入此文件輸出流。 
2)參數 
b - 數據。 
off - 數據中的起始偏移量。 
len - 要寫入的字節數。 
3)異常 
IOException - 如果發生I / O錯誤。

4. public void close() throws IOException

1)作用
關閉此文件輸出流並釋放與此流關聯的所有系統資源。 此文件輸出流可能不再用於寫入字節。 
2)異常 
IOException - 如果發生I / O錯誤。

五 案例

package cn.donglinode.IO;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamDemo01 {
    public static void main(String[] args) {
        File file=new File("chapter16/src/tempFile.text");
        FileOutputStream fos=null;
        try {
            fos=new FileOutputStream(file,true);
            String str="熱巴是個小仙女!";
            //寫出
            fos.write(str.getBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            //關閉流,首先判斷流是否爲空,空的話就不用關了
            try {
                if (fos!=null){
                    fos.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

注意:在IDEA中,當前路徑是project的根目錄

 

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