Java中FileWriter的用法及wirte()重載方法詳解
一、用法介紹
FileWriter的用法很簡(jiǎn)單,可以總結(jié)為三個(gè)詞:創(chuàng)建(new)、寫(xiě)出(write)、關(guān)閉(close);
- 創(chuàng)建(new):就是我們平時(shí)常用的 new 一個(gè);
- 寫(xiě)出(write):利用 重載方法 write() 中的某一個(gè)寫(xiě)出內(nèi)容;
- 關(guān)閉(close):關(guān)閉流;
以下是一個(gè)具體的舉例說(shuō)明:
public class TestFileWriter { public static void main(String[] args) throws IOException { // 方式一,創(chuàng)建的文件會(huì)在項(xiàng)目里 FileWriter fileWriter1 = new FileWriter("file01.txt"); fileWriter1.write("我很驕傲我是中國(guó)人!"); fileWriter1.write("此生無(wú)悔入華夏!"); fileWriter1.write("\r\n人生自古誰(shuí)無(wú)死,留取丹心照汗青!"); fileWriter1.close(); // 方式二,創(chuàng)建的文件會(huì)在指定的目錄里(注意,這里一定要有寫(xiě)入的權(quán)限,否則會(huì)創(chuàng)建失?。。? FileWriter fileWriter2 = new FileWriter("G:\\aaa\\file02.txt"); fileWriter2.write("我很驕傲我是中國(guó)人!"); fileWriter2.close(); } }
輸出結(jié)果:
二、疑問(wèn)解答
以下是匯總的幾個(gè)常見(jiàn)問(wèn)題:
2.1、如果這個(gè)文件不存在會(huì)怎么樣?
如果這個(gè)文件不存在,那么就會(huì)幫我們自動(dòng)創(chuàng)建一個(gè),創(chuàng)建完以后的純文本文件放在哪里呢?如果不指定目錄就會(huì)放在這個(gè) Java project 工程下面,與src目錄和target目錄同級(jí)。 如果指定目錄就會(huì)把這個(gè)文件放到指定的目錄下:如上述方式二;FileWriter fileWriter2 = new FileWriter("G:\\aaa\\file02.txt");
2.2、如果這個(gè)文件存在的話會(huì)怎么樣?
如果這個(gè)純文本文件已經(jīng)存在,并且里面有內(nèi)容,此時(shí)我們?cè)偬砑觾?nèi)容,就會(huì)覆蓋掉這個(gè)純文本文件已有的內(nèi)容。
2.3、如果不想覆蓋之前的內(nèi)容,想要追加內(nèi)容怎么做?
其實(shí)這個(gè)也很簡(jiǎn)單,只需要在創(chuàng)建對(duì)象的時(shí)候,選擇另外一個(gè)構(gòu)造方法(重載形式的構(gòu)造方法)就可以了。
FileWriter fw = new FileWriter("file01.txt", true);
或者:
FileWriter fileWriter2 = new FileWriter("G:\\aaa\\file02.txt", true);
2.4、添加數(shù)據(jù),如何實(shí)現(xiàn)換行呢?
往純文本文件里頭添加的數(shù)據(jù)都是在同一行的,那么如何實(shí)現(xiàn)換行呢?
注意區(qū)分操作系統(tǒng):
- Windows 操作系統(tǒng)下:\r\n
- Linux 操作系統(tǒng)下:\n
- Mac 操作系統(tǒng)下:早期使用的是 \r,現(xiàn)在使用的是 \n
比如:fileWriter1.write("人生自古誰(shuí)無(wú)死,\r\n留取丹心照汗青!");
三、用法拓展
3.1、write 方法重載
write() 有五種重載方式:
- write(int c):寫(xiě)入數(shù)字,利用 ASCII 碼表 或者 Unicode 表轉(zhuǎn)化
- write(String str):寫(xiě)入字符串
- write(char[] cbuf):寫(xiě)入字符數(shù)組
- write(String str, int off, int len):寫(xiě)入字符串的一部分
- write(char[] cbuf,int off,int len):寫(xiě)入字符數(shù)組的一部分
ASCII 碼表中常用的:48 - 0,65 - A,97 - a
3.2、重載示例
具體舉例說(shuō)明:
public static void testOverload() throws IOException { FileWriter fileWriter = new FileWriter("file03.txt"); // 重載方法一:寫(xiě)入數(shù)字,利用 ASCII 碼表 或者 Unicode 表轉(zhuǎn)化 // ASCII 碼表中常用的:48 - 0,65 - A,97 - a fileWriter.write(65); fileWriter.write("\r\n"); // 定義字符串 String str = "我很驕傲我是中國(guó)人!"; // 重載方法二:寫(xiě)入字符串 fileWriter.write(str); fileWriter.write("\r\n"); // 重載方法三:寫(xiě)入字符數(shù)組 char[] javaArray = {'J','a','v','a'}; fileWriter.write(javaArray); fileWriter.write("\r\n"); // 重載方法四:寫(xiě)入字符串的一部分(結(jié)果:我是中國(guó)人) fileWriter.write(str, 4, 5); fileWriter.write("\r\n"); // 重載方法五:寫(xiě)入字符數(shù)組的一部分(結(jié)果:v) fileWriter.write(javaArray, 2, 1); fileWriter.close(); }
輸出結(jié)果為:
到此這篇關(guān)于Java中FileWriter的用法及wirte()重載方法詳解的文章就介紹到這了,更多相關(guān)Java的FileWriter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)域匯總
這篇文章主要給大家介紹了關(guān)于Java虛擬機(jī)運(yùn)行時(shí)數(shù)據(jù)區(qū)域的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08mybatis?foreach傳兩個(gè)參數(shù)批量刪除
這篇文章主要介紹了mybatis?foreach?批量刪除傳兩個(gè)參數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04Java 生成圖片驗(yàn)證碼3種方法(字母、加減乘除、中文)
這篇文章主要介紹了Java 生成圖片驗(yàn)證碼3種方法(字母、加減乘除、中文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01SpringBoot中@Value獲取值和@ConfigurationProperties獲取值用法及比較
在Spring Boot中,@Value注解是一個(gè)非常有用的特性,它允許我們將外部的配置注入到我們的Bean中,@ConfigurationProperties用于將配置文件中的屬性綁定到 Java Bean 上,本文介紹了@Value獲取值和@ConfigurationProperties獲取值用法及比較,需要的朋友可以參考下2024-08-08SpringBoot短鏈接跳轉(zhuǎn)的代碼實(shí)現(xiàn)
短鏈跳轉(zhuǎn)是一種通過(guò)將長(zhǎng)鏈接轉(zhuǎn)換為短鏈接的方式,以便在互聯(lián)網(wǎng)上進(jìn)行鏈接共享和傳播的技術(shù),短鏈將原始長(zhǎng)鏈接通過(guò)特定算法轉(zhuǎn)換為較短的鏈接,使得它更容易分享、傳播和展示,本文給大家介紹了SpringBoot短鏈接跳轉(zhuǎn)的代碼實(shí)現(xiàn),需要的朋友可以參考下2024-03-03使用Jitpack發(fā)布開(kāi)源Java庫(kù)的詳細(xì)流程
這篇文章主要介紹了使用Jitpack發(fā)布開(kāi)源Java庫(kù)的詳細(xì)流程,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-02-02Java抽象類(lèi)和普通類(lèi)區(qū)別、 數(shù)組跟List的區(qū)別解析
這篇文章主要介紹了Java抽象類(lèi)和普通類(lèi)區(qū)別、 數(shù)組跟List的區(qū)別,在這里需要注意List是一個(gè)接口,不能直接實(shí)例化,需要使用具體的實(shí)現(xiàn)類(lèi)來(lái)創(chuàng)建對(duì)象,本文結(jié)合示例代碼介紹的非常詳細(xì),需要的朋友參考下吧2023-09-09