IO流的使用之緩衝流

文章內容概括:

點擊文字即可跳轉

- 什麼是緩存流
- 緩存輸入流,讀取文件
- 緩存輸出流,寫入數據
- 綜合演練,讀取A文件,並將內容寫到B文件
- 課前回顧(FileIn/OutputStream,FileWrite/Reader)
什麼?你對IO還是一臉懵逼的狀態,那就戳我到IO常用實例大彙總,學習一些基礎知識吧~~

ps:這個常用實例大彙總目前只是在創建階段 嘻嘻 (^__^)

什麼是文件緩存流
文件緩存流包括:BufferReader和BufferWrite
緩存流增強了度寫文章的能力,可以成行的讀取數據,是字符輸出流和輸入流的一種
實例化:
BufferReader br=new BufferReader(Reader in);
BufferWrite bw=new BufferWrite(Write out);
常用方法:
BufferReader: readerLine(); 讀取一行的內容
BufferWrite:write(String s); 寫入一個字符串
                      newLine();換行寫入

讀取文件內容——BufferReader

String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
        File file = new File(name);
//讀取數據
        try {
            FileReader fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            //將讀取的數據賦值給string
            String string =null;//到達文件的尾部讀出來是空
            while((string=br.readLine())!=null){
                System.out.println(string);

            }
            //從上層流關閉到底層流
            br.close();
            fr.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

向文件寫入內容——BufferReader

// 向文件寫入數據
        String[] content = { "我愛JAVA", "我愛安卓", "我愛HTML" };
        String name="C:\\Users\\lenovo\\Desktop\\text\\c.txt";
        File file = new File(name);
        try {
            FileWriter fw = new FileWriter(file, true);// 第二個參數,true追加信息,false爲覆蓋(會將以前文件的內容覆蓋)
            BufferedWriter bw = new BufferedWriter(fw);
            for (String a : content) {
                bw.write(a);// 寫入,一次寫入一個元素
                bw.newLine();// 換行
            }
            // 上層流到底層流慢慢的關閉
            bw.close();
            fw.close();
            System.out.println("寫入成功");
        } catch (IOException e) {
            e.printStackTrace();
        }


前方高能:實戰演練!!!!


首先這裏創建了兩個文件c.txt,e.txt,將從c的讀取的內容
寫入到e,e裏面啥都沒有,下面是c文件的內容
這裏寫圖片描述

//讀取c文件,寫向e
        File fileC=new File("C:\\Users\\lenovo\\Desktop\\text\\c.txt");
        File fileE=new File("C:\\Users\\lenovo\\Desktop\\text\\e.txt");
        try {
            FileReader fr=new FileReader(fileC);
            FileWriter fw=new FileWriter(fileE);
            BufferedReader br=new BufferedReader(fr);
            BufferedWriter bw=new BufferedWriter(fw);
            //先讀取C中的數據
            String str=null;
            //使用while循環進行每一行的讀取,邊讀取邊寫入
            while((str=br.readLine())!=null){
                bw.write(str);
                //這裏有換行千萬別忘了
                bw.newLine();

            }
            //關閉流
            br.close();
            bw.close();
            fr.close();
            fw.close();
            System.out.println("寫入成功");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

這裏要注意,如果不加bw.newLine();效果是這樣滴
這裏寫圖片描述
沒有進行換行
加上之後纔會變成這樣
這裏寫圖片描述
步驟總結:
1.定義兩個要操作的文件
2.實例化FileReader/Writer類
3.將FileReader/Writer的對象傳入BufferReader/Writer,從而實例化緩存流對象
4.定義一個String字符串,用來存放每一次讀取的數據
5.使用while循環,一行一行讀,並把讀取到的數據寫到目標文件中
6.關閉流

今天的內容就是這些,謝謝大家的閱讀,比心~再見~
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章