一 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的根目錄