在本教程中,我們將借助示例學(xué)習(xí)Java FileWriter及其方法。
java.io包的FileWriter類可用于將數(shù)據(jù)(以字符為單位)寫入文件。
它繼承了OutputStreamWriter類。
在進(jìn)一步了解FileWriter之前,請(qǐng)確保了解Java文件。
為了創(chuàng)建文件寫入器,我們必須首先導(dǎo)入Java.io.FileWriter包。導(dǎo)入包后,就可以創(chuàng)建文件寫入器。
1.使用文件名
FileWriter output = new FileWriter(String name);
在這里,我們創(chuàng)建了一個(gè)文件寫入器,該文件寫入器將鏈接到所指定的文件名。
2.使用文件的對(duì)象
FileWriter input = new FileWriter(File fileObj);
在這里,我們創(chuàng)建了一個(gè)文件寫入器,該文件寫入器將鏈接到文件對(duì)象所指定的文件。
在上面的示例中,數(shù)據(jù)是使用某些默認(rèn)字符編碼存儲(chǔ)的。
但是,由于Java 11,我們也可以指定字符編碼的類型(UTF8或UTF16)。
FileWriter input = new FileWriter(String file, Charset cs);
在這里,我們使用Charset該類來(lái)指定文件寫入器的字符編碼。
FileWriter類為Writer類中出現(xiàn)的不同方法提供了實(shí)現(xiàn)。
write() -向?qū)懭肫鲗懸粋€(gè)字符
write(char[] array) -將指定數(shù)組中的字符寫入寫入器
write(String data) -將指定的字符串寫入寫入器
import java.io.FileWriter; public class Main { public static void main(String args[]) { String data = "This is the data in the output file"; try { // 創(chuàng)建 FileWriter FileWriter output = new FileWriter("output.txt"); // 將字符串寫入文件 output.write(data); //關(guān)閉 writer output.close(); } catch (Exception e) { e.getStackTrace(); } } }
在上面的示例中,我們創(chuàng)建了一個(gè)名為output的文件寫入器。輸出閱讀器與output.txt文件鏈接。
FileWriter output = new FileWriter("output.txt");
要將數(shù)據(jù)寫入文件,我們使用了write()方法。
在這里,當(dāng)我們運(yùn)行程序時(shí),output.txt文件將填充以下內(nèi)容。
This is a line of text inside the file.
getEncoding()方法可用于獲取用于寫入數(shù)據(jù)的編碼類型。例如,
import java.io.FileWriter; import java.nio.charset.Charset; class Main { public static void main(String[] args) { String file = "output.txt"; try { //使用默認(rèn)編碼創(chuàng)建一個(gè)FileReader FileWriter output1 = new FileWriter(file); //創(chuàng)建一個(gè)FileReader指定編碼 FileWriter output2 = new FileWriter(file, Charset.forName("UTF8")); //返回閱讀器的字符編碼 System.out.println("output1的字符編碼: " + output1.getEncoding()); System.out.println("output2的字符編碼: " + output2.getEncoding()); // 關(guān)閉 reader output1.close(); output2.close(); } catch(Exception e) { e.getStackTrace(); } } }
輸出結(jié)果
output1的字符編碼: Cp1252 output2的字符編碼: UTF8
在上面的示例中,我們創(chuàng)建了2個(gè)文件寫入器,分別名為output1和output2。
output1沒(méi)有指定字符編碼。因此,getEncoding()方法返回默認(rèn)字符編碼。
output2指定字符編碼UTF8。因此,getEncoding()方法返回指定的字符編碼。
注意:我們已經(jīng)使用該Charset.forName()方法指定字符編碼的類型。
要關(guān)閉文件寫入器,我們可以使用close()方法。一旦調(diào)用了close()方法,就不能使用writer寫入數(shù)據(jù)。
方法 | 描述 |
---|---|
flush() | 強(qiáng)制將寫入器中存在的所有數(shù)據(jù)寫入相應(yīng)的目的地 |
append() | 將指定字符插入當(dāng)前寫入器 |