在本教程中,我們將借助示例學(xué)習(xí)Java FileOutputStream及其方法。
java.io包的FileOutputStream類可用于將數(shù)據(jù)(以字節(jié)為單位)寫入文件。
它繼承了OutputStream抽象類。
在學(xué)習(xí)之前FileOutputStream,請確保了解Java文件。
為了創(chuàng)建文件輸出流,我們必須首先導(dǎo)入java.io.FileOutputStream包。導(dǎo)入包后,就可以使用Java創(chuàng)建文件輸出流。
1.使用文件路徑
//包括布爾型參數(shù) FileOutputStream output = new FileOutputStream(String path, boolean value); //不包括布爾型參數(shù) FileOutputStream output = new FileOutputStream(String path);
在這里,我們創(chuàng)建了一個輸出流,該輸出流將鏈接到所指定的文件路徑。
另外,value是可選的布爾參數(shù)。如果將其設(shè)置為true,則新數(shù)據(jù)將追加到文件中現(xiàn)有數(shù)據(jù)的末尾。否則,新數(shù)據(jù)將覆蓋文件中的現(xiàn)有數(shù)據(jù)。
2.使用文件的對象
FileOutputStream output = new FileOutputStream(File fileObject);
在這里,我們創(chuàng)建了一個輸出流,它將鏈接到fileObject指定的文件。
FileOutputStream類為OutputStream類中出現(xiàn)的不同方法提供了實現(xiàn)。
write() - 將單寫到byte文件輸出流
write(byte[] array) - 將指定數(shù)組中的字節(jié)寫入輸出流
write(byte[] array, int start, int length)-從位置start開始將等于length的字節(jié)數(shù)寫入數(shù)組的輸出流
import java.io.FileOutputStream; public class Main { public static void main(String[] args) { String data = "這是文件中的一行文本。"; try { FileOutputStream output = new FileOutputStream("output.txt"); byte[] array = data.getBytes(); //將字節(jié)寫入文件 output.write(array); output.close(); } catch(Exception e) { e.getStackTrace(); } } }
在上面的示例中,我們創(chuàng)建了一個名為output的文件輸出流。文件輸出流與文件output.txt鏈接。
FileOutputStream output = new FileOutputStream("output.txt");
要將數(shù)據(jù)寫入文件,我們使用了write()方法。
在這里,當(dāng)我們運行程序時,output.txt文件將寫入以下內(nèi)容。
這是文件中的一行文本。
注意:程序中使用getBytes()方法將字符串轉(zhuǎn)換為字節(jié)數(shù)組。
要清除輸出流,可以使用flush()方法。此方法強(qiáng)制輸出流將所有數(shù)據(jù)寫入目標(biāo)。例如,
import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { FileOutputStream out = null; String data = "這是flush方法的演示"; try { out = new FileOutputStream(" flush.txt"); //使用write()方法 out.write(data.getBytes()); //使用flush()方法 out.flush(); out.close(); } catch(Exception e) { e.getStackTrace(); } } }
當(dāng)我們運行程序時,文件flush.txt充滿了由string表示的文本data。
要關(guān)閉文件輸出流,可以使用close()方法。一旦調(diào)用了該方法,我們就不能使用FileOutputStream的方法。
方法 | 內(nèi)容描述 |
---|---|
finalize() | 確保close()方法被調(diào)用 |
getChannel() | 返回FileChannel與輸出流關(guān)聯(lián)的對象 |
getFD() | 返回與輸出流關(guān)聯(lián)的文件描述符 |