在本教程中,我們將借助示例學(xué)習(xí)Java FileOutputStream及其方法。
java.io包的FileOutputStream類可用于將數(shù)據(jù)(以字節(jié)為單位)寫(xiě)入文件。
它繼承了OutputStream抽象類。

在學(xué)習(xí)之前FileOutputStream,請(qǐng)確保了解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)建了一個(gè)輸出流,該輸出流將鏈接到所指定的文件路徑。
另外,value是可選的布爾參數(shù)。如果將其設(shè)置為true,則新數(shù)據(jù)將追加到文件中現(xiàn)有數(shù)據(jù)的末尾。否則,新數(shù)據(jù)將覆蓋文件中的現(xiàn)有數(shù)據(jù)。
2.使用文件的對(duì)象
FileOutputStream output = new FileOutputStream(File fileObject);
在這里,我們創(chuàng)建了一個(gè)輸出流,它將鏈接到fileObject指定的文件。
FileOutputStream類為OutputStream類中出現(xiàn)的不同方法提供了實(shí)現(xiàn)。
write() - 將單寫(xiě)到byte文件輸出流
write(byte[] array) - 將指定數(shù)組中的字節(jié)寫(xiě)入輸出流
write(byte[] array, int start, int length)-從位置start開(kāi)始將等于length的字節(jié)數(shù)寫(xiě)入數(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é)寫(xiě)入文件
output.write(array);
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}在上面的示例中,我們創(chuàng)建了一個(gè)名為output的文件輸出流。文件輸出流與文件output.txt鏈接。
FileOutputStream output = new FileOutputStream("output.txt");要將數(shù)據(jù)寫(xiě)入文件,我們使用了write()方法。
在這里,當(dāng)我們運(yùn)行程序時(shí),output.txt文件將寫(xiě)入以下內(nèi)容。
這是文件中的一行文本。
注意:程序中使用getBytes()方法將字符串轉(zhuǎn)換為字節(jié)數(shù)組。
要清除輸出流,可以使用flush()方法。此方法強(qiáng)制輸出流將所有數(shù)據(jù)寫(xiě)入目標(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)我們運(yùn)行程序時(shí),文件flush.txt充滿了由string表示的文本data。
要關(guān)閉文件輸出流,可以使用close()方法。一旦調(diào)用了該方法,我們就不能使用FileOutputStream的方法。
| 方法 | 內(nèi)容描述 |
|---|---|
| finalize() | 確保close()方法被調(diào)用 |
| getChannel() | 返回FileChannel與輸出流關(guān)聯(lián)的對(duì)象 |
| getFD() | 返回與輸出流關(guān)聯(lián)的文件描述符 |