W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
要寫入文件,我們需要創(chuàng)建一個FileOutputStream類的對象,它將表示輸出流。
// Create a file output stream String destFile = "test.txt"; FileOutputStream fos = new FileOutputStream(destFile);
當(dāng)寫入文件時,如果文件不存在,Java會嘗試創(chuàng)建文件。我們必須準(zhǔn)備好處理這個異常,將代碼放在try-catch塊中,如下所示:
try { FileOutputStream fos = new FileOutputStream(srcFile); }catch (FileNotFoundException e){ // Error handling code goes here }
如果文件包含數(shù)據(jù),數(shù)據(jù)將被擦除。為了保留現(xiàn)有數(shù)據(jù)并將新數(shù)據(jù)附加到文件,我們需要使用FileOutputStream類的另一個構(gòu)造函數(shù),它接受一個布爾標(biāo)志,用于將新數(shù)據(jù)附加到文件。
要將數(shù)據(jù)附加到文件,請在第二個參數(shù)中傳遞true,使用以下代碼。
FileOutputStream fos = new FileOutputStream(destFile, true);
FileOutputStream類有一個重載的write()方法將數(shù)據(jù)寫入文件。我們可以使用不同版本的方法一次寫入一個字節(jié)或多個字節(jié)。
通常,我們使用FileOutputStream寫入二進(jìn)制數(shù)據(jù)。
要向輸出流中寫入諸如“Hello"的字符串,請將字符串轉(zhuǎn)換為字節(jié)。
String類有一個getBytes()方法,該方法返回表示字符串的字節(jié)數(shù)組。我們給FileOutputStream寫一個字符串如下:
String text = "Hello"; byte[] textBytes = text.getBytes(); fos.write(textBytes);
要插入一個新行,使用line.separator系統(tǒng)變量如下。
String lineSeparator = System.getProperty("line.separator"); fos.write(lineSeparator.getBytes());
我們需要使用flush()方法刷新輸出流。
fos.flush();
刷新輸出流指示如果任何寫入的字節(jié)被緩沖,則它們可以被寫入數(shù)據(jù)宿。
關(guān)閉輸出流類似于關(guān)閉輸入流。我們需要使用close()方法關(guān)閉輸出流。
// Close the output stream fos.close();
close()方法可能拋出一個IOException異常。如果我們希望自動關(guān)閉tit,請使用try-with-resources創(chuàng)建輸出流。
以下代碼顯示如何將字節(jié)寫入文件輸出流。
import java.io.File; import java.io.FileOutputStream; public class Main { public static void main(String[] args) { String destFile = "luci2.txt"; // Get the line separator for the current platform String lineSeparator = System.getProperty("line.separator"); String line1 = "test"; String line2 = "test1"; String line3 = "test2"; String line4 = "test3"; try (FileOutputStream fos = new FileOutputStream(destFile)) { fos.write(line1.getBytes()); fos.write(lineSeparator.getBytes()); fos.write(line2.getBytes()); fos.write(lineSeparator.getBytes()); fos.write(line3.getBytes()); fos.write(lineSeparator.getBytes()); fos.write(line4.getBytes()); // Flush the written bytes to the file fos.flush(); System.out.println("Text has been written to " + (new File(destFile)).getAbsolutePath()); } catch (Exception e2) { e2.printStackTrace(); } } }
上面的代碼生成以下結(jié)果。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: