JAVA中的FileWriter流解析
一、FileWriter流
API說明:用于編寫字符文件的便捷類, 此類的構(gòu)造函數(shù)假定默認(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小是可接受的,要自己指定這些值,請?jiān)贔ileOutputStream上構(gòu)造OutputStreamWriter。 文件是否可用或是否可以創(chuàng)建取決于底層平臺(tái)。 特別是某些平臺(tái)允許一次只打開一個(gè)FileWriter(或其他文件寫入對象)來寫文件。 在這種情況下,如果涉及的文件已經(jīng)打開,則此類中的構(gòu)造函數(shù)將失敗。 FileWriter用于編寫字符流。 要編寫原始字節(jié)流,請考慮使用FileOutputStream
1)編寫字符文件的便捷類怎么理解?
專用于輸出字符數(shù)據(jù)到文件的便捷類,如輸出多個(gè)中文等用此類
2)此類的構(gòu)造函數(shù)假定默認(rèn)字符編碼和默認(rèn)字節(jié)緩沖區(qū)大小是可接受的怎么理解?
此類構(gòu)造函數(shù)中有設(shè)置默認(rèn)字符編碼以及該類有一個(gè)常量代表字節(jié)緩沖區(qū)大小
3)自己指定這些值,請?jiān)贔ileOutputStream上構(gòu)造OutputStreamWriter?
說明父類OutputStreamWriter對象的構(gòu)造方法中有利用字節(jié)輸出流FileOutputStream作為參數(shù)以及可以設(shè)置指定的字符編碼
public class FileWriter extends OutputStreamWriter
二、FileWriter流構(gòu)造方法
1)通過給定的File對象構(gòu)造FileWriter類對象:
本質(zhì)是利用File對象然后構(gòu)造FileOutputStream對象再調(diào)用父類的構(gòu)造方法,注意并未有關(guān)字符集和緩沖區(qū)大小的設(shè)置
public FileWriter(File file) throws IOException { super(new FileOutputStream(file)); }
2)通過給定File對象的構(gòu)造FileWriter對象, 如果第二個(gè)參數(shù)為true,則字節(jié)將寫入文件的末尾而不是開頭即是追加內(nèi)容而非覆蓋
本質(zhì)是利用File對象然后構(gòu)造FileOutputStream對象再調(diào)用父類的構(gòu)造方法注意并未有關(guān)字符集和緩沖區(qū)大小的設(shè)置
public FileWriter(File file, boolean append) throws IOException { super(new FileOutputStream(file, append)); }
3)通過給定的文件名構(gòu)造FileWriter對象:本質(zhì)與第一個(gè)構(gòu)造方法一致
public FileWriter(String fileName) throws IOException { super(new FileOutputStream(fileName)); }
4)通過給定的文件名構(gòu)造FileWriter對象, 如果第二個(gè)參數(shù)為true,則字節(jié)將寫入文件的末尾而不是開頭即是追加內(nèi)容而非覆蓋
本質(zhì)是與第二個(gè)構(gòu)造方法一致
public FileWriter(String fileName, boolean append) throws IOException { super(new FileOutputStream(fileName, append)); }
三、FileWriter流API
FileWriter的API中只有5個(gè)構(gòu)造方法,且本質(zhì)都是調(diào)用的父類OutputStreamWriter的構(gòu)造方法,因此若需要了解FileWriter的構(gòu)造方法,我們需要了解OutputStreamWriter類
OutputStreamWriter是從字符流到字節(jié)流的橋接:使用指定的字符集將寫入其中的字符編碼為字節(jié)。它使用的字符集可以通過名稱指定,也可以明確指定,或者可以接受平臺(tái)的默認(rèn)字符集。
每次調(diào)用write()方法都會(huì)導(dǎo)致在給定字符上調(diào)用編碼轉(zhuǎn)換器。生成的字節(jié)在寫入底層輸出流之前在緩沖區(qū)中累積??梢灾付ù司彌_區(qū)的大小,但默認(rèn)情況下,它足夠大,可用于大多數(shù)用途。
請注意,傳遞給write()方法的字符不會(huì)被緩沖。
到此這篇關(guān)于JAVA中的FileWriter流解析的文章就介紹到這了,更多相關(guān)FileWriter流解析內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談java.util.concurrent包中的線程池和消息隊(duì)列
這篇文章主要介紹了淺談java.util.concurrent包中的線程池和消息隊(duì)列,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08Java中final、static關(guān)鍵字與方法的重寫和繼承易錯(cuò)點(diǎn)整理
這篇文章主要給大家介紹了關(guān)于Java中final、static關(guān)鍵字與方法的重寫和繼承易錯(cuò)點(diǎn)的相關(guān)資料,在Java編程中final關(guān)鍵字用于限制方法或類的進(jìn)一步修改,final方法不能被子類重寫,而static方法不可被重寫,只能被遮蔽,需要的朋友可以參考下2024-10-10Java 動(dòng)態(tài)代理的多種實(shí)現(xiàn)方式
動(dòng)態(tài)代理實(shí)際上是JVM在運(yùn)行期動(dòng)態(tài)創(chuàng)建class字節(jié)碼并加載的過程。本文講述了Java 動(dòng)態(tài)代理的多種實(shí)現(xiàn)方式,感興趣的朋友可以選擇適合自己的方式2021-06-06IDEA的spring項(xiàng)目使用@Qualifier飄紅問題及解決
這篇文章主要介紹了IDEA的spring項(xiàng)目使用@Qualifier飄紅問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11Java實(shí)現(xiàn)NIO聊天室的示例代碼(群聊+私聊)
這篇文章主要介紹了Java實(shí)現(xiàn)NIO聊天室的示例代碼(群聊+私聊),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Java從零實(shí)現(xiàn)超市會(huì)員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)超市會(huì)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-12-12