Java中BufferedReader和BufferedWriter使用方式
FileWriter/FileReader
介紹:FileWriter 類從 OutputStreamWriter 類繼承而來。該類按字符向流中寫入數(shù)據(jù)。
構(gòu)造:參數(shù)為 File 對(duì)象
FileWriter(File file)
參數(shù)是文件的路徑及文件名(默認(rèn)是當(dāng)前執(zhí)行文件的路徑)
FileWrite(String filename)
等價(jià)于:
OutputStreamWriter out = new OutputStreamWriter( new FileOutputStream(File file))
方法:
序號(hào) | 方法描述 |
---|---|
1 | public void write(int c) throws IOException 寫入單個(gè)字符c。 |
2 | public void write(char [] c, int offset, int len) 寫入字符數(shù)組中開始為offset長度為len的某一部分。 |
3 | public void write(String s, int offset, int len) 寫入字符串中開始為offset長度為len的某一部分。 |
栗子:
public class Main { public static void main(String[] args) throws Exception { File file = new File("d:/abc/f10"); // 創(chuàng)建文件 file.createNewFile(); // creates a FileWriter Object FileWriter writer = new FileWriter(file); // 向文件寫入內(nèi)容 writer.write("This\n is\n an\n example\n"); writer.flush(); writer.close(); // 創(chuàng)建 FileReader 對(duì)象 FileReader fr = new FileReader(file); char[] a = new char[50]; fr.read(a); // 從數(shù)組中讀取內(nèi)容 for (char c : a) System.out.print(c); // 一個(gè)個(gè)打印字符 fr.close(); } }
運(yùn)行程序會(huì)在 D 盤 abc 文件夾下創(chuàng)建 f10,同時(shí)打印內(nèi)容如下:
BufferedReader/BufferedWriter
介紹:BufferedReader 類從字符輸入流中讀取文本并緩沖字符,以便有效地讀取字符,數(shù)組和行。
可以通過構(gòu)造函數(shù)指定緩沖區(qū)大小也可以使用默認(rèn)大小。對(duì)于大多數(shù)用途,默認(rèn)值足夠大。
由 Reader 構(gòu)成的每個(gè)讀取請(qǐng)求都會(huì)導(dǎo)致相應(yīng)的讀取請(qǐng)求由基礎(chǔ)字符或字節(jié)流構(gòu)成,建議通過 BufferedReader 包裝 Reader 的實(shí)例類以提高效率。(Reader 構(gòu)成的對(duì)象是字符對(duì)象,每次的讀取請(qǐng)求都會(huì)涉及到字節(jié)讀取解碼字符的過程,而 BufferedReader 類中有設(shè)計(jì)減少這樣的解碼次數(shù)的方法,進(jìn)而提高轉(zhuǎn)換效率)
創(chuàng)建對(duì)象:
BufferedReader in = new BufferedReader(new FileReader(“foo.in”));
方法BufferedReader 由 Reader 類擴(kuò)展而來,提供通用的緩沖方式文本讀取,而且提供了很實(shí)用的readLine()
,讀取一個(gè)文本行,從字符輸入流中讀取文本,緩沖各個(gè)字符,從而提供字符、數(shù)組和行的高效讀取。
readLine()
讀取一行字符串,不含末尾換行符,讀取結(jié)束再讀取返回 null。
栗子1:寫入
BufferedWriter bufw = new BufferedWriter(new FileWriter("d:/abc/f11")); bufw.write("This"); bufw.newLine(); bufw.newLine(); bufw.write("is"); bufw.write("an"); bufw.write("example"); //使用緩沖區(qū)中的方法,將數(shù)據(jù)刷新到目的地文件中去。 bufw.flush(); //關(guān)閉緩沖區(qū),同時(shí)關(guān)閉了fw流對(duì)象 bufw.close();
運(yùn)行結(jié)果會(huì)在 D 盤 abc 文件夾下新建 f11 文件
栗子2:讀取
//相接的字符流,只要讀取字符,都要做編碼轉(zhuǎn)換 //只要使用字符流,必須要有轉(zhuǎn)換流 BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream("d:/abc/f11"))); String line; while ((line = in.readLine()) != null) { System.out.println(line); } in.close();
運(yùn)行結(jié)果:
到此這篇關(guān)于Java中BufferedReader和BufferedWriter使用方式的文章就介紹到這了,更多相關(guān)Java BufferedReader內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java多線程循環(huán)柵欄CyclicBarrier正確使用方法
這篇文章主要介紹了Java多線程循環(huán)柵欄CyclicBarrier正確使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09基于Spring Boot使用JpaRepository刪除數(shù)據(jù)時(shí)的注意事項(xiàng)
這篇文章主要介紹了Spring Boot使用JpaRepository刪除數(shù)據(jù)時(shí)的注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Spring Boot 中的 @EnableDiscoveryClient 注解
@EnableDiscoveryClient 注解是 Spring Boot 應(yīng)用程序注冊(cè)到服務(wù)注冊(cè)中心的關(guān)鍵注解,這篇文章主要介紹了Spring Boot 中的 @EnableDiscoveryClient 注解,需要的朋友可以參考下2023-07-07SpringBoot2入門自動(dòng)配置原理及源碼分析
這篇文章主要為大家介紹了SpringBoot2入門自動(dòng)配置原理及源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Java實(shí)現(xiàn)查找文件和替換文件內(nèi)容
這篇文章主要為大家詳細(xì)介紹了Java語言如何實(shí)現(xiàn)查找文件和替換文件內(nèi)容功能,文中的示例代碼講解詳細(xì),感興趣的可以跟隨小編一起學(xué)習(xí)一下2022-08-08Java 動(dòng)態(tài)生成類和實(shí)例, 并注入方法操作示例
這篇文章主要介紹了Java 動(dòng)態(tài)生成類和實(shí)例, 并注入方法操作,結(jié)合實(shí)例形式分析了Java 動(dòng)態(tài)生成類和實(shí)例以及動(dòng)態(tài)注入相關(guān)操作技巧,需要的朋友可以參考下2020-02-02Spring?Boot實(shí)現(xiàn)文件上傳下載
這篇文章主要為大家詳細(xì)介紹了Spring?Boot實(shí)現(xiàn)文件上傳下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08