Java IO(input output)流<二>

來源:互聯網
上載者:User

標籤:

一.字元流的緩衝區

1.什麼是緩衝區
       緩衝區又稱為緩衝,它是記憶體空間的一部分。也就是說,在記憶體空間中預留了一定的儲存空間,這些儲存空間用來緩衝輸入或輸出的資料,

這部分預留的空間就叫做緩衝區。緩衝區根據其對應的是輸入裝置還是輸出裝置,分為輸入緩衝區和輸出緩衝區。

2.為什麼要引入緩衝區

       緩衝區就是一塊記憶體區,它用在輸入輸出裝置和CPU之間,用來快取資料。它使得低速的輸入輸出裝置和高速的CPU能夠協調工作,避免低

速的輸入輸出裝置佔用CPU,解放出CPU,使其能夠高效率工作。

3.字元流的緩衝

    3.1 BufferWriter執行個體

 

 1 import java.io.*; 2  3 //使用BufferedWriter緩衝區對象來讀取資料 4 public class BufferedWriterDemo { 5  6     public static void main(String[] args) throws IOException{ 7         //建立一個檔案流來儲存資料,並傳遞給BufferedWriter對象 8         FileWriter fw =new FileWriter("BuffWriter_copy.txt"); 9         //建立緩衝區對象並將檔案流對象傳遞給其建構函式10         BufferedWriter bufw=new BufferedWriter(fw);11         //往緩衝區中寫資料12         for(int i=0;i<10;i++){13             14          bufw.write("abcde"+i);15          16          bufw.newLine();17          //將記憶體中的資料重新整理到檔案中18          bufw.flush();19         }20         //關閉緩衝區21         bufw.close();22     }23 24 }

運行結果

   3.2 BufferedReader執行個體

import java.io.*;/* * 建立BufferedReader緩衝區,使用newLine和readLine方法 */public class BUfferedReaderDemo {    public static void main(String[] args) throws IOException {        //建立檔案流,並將資料傳遞給緩衝區建構函式        FileReader fr = new FileReader("test.txt") ;        //建立緩衝區,調用其建構函式        BufferedReader bufr = new BufferedReader(fr);        //將資料列印        //因為BufferedReader返回的最後資料為String,如果到了最後則為null        String line=null;        //調用BufferedReader的readLine方法        while((line=bufr.readLine())!=null){                        System.out.println(line);        }            }}

運行結果

二.綜合執行個體

     利用字元緩衝區來將一個檔案內容複寫到另一檔案中

import java.io.*;/* * 利用字元緩衝區來將一個檔案內容複寫到另一檔案中 */public class BufferWriterDemo {    public static void main(String[] args) {        //建立一個緩衝區寫對象,並初始化為null        BufferedWriter bufw=null;        //建立一個緩衝區讀對象,並初始化為null        BufferedReader bufr=null;                try{            //緩衝區的建構函式必須 有一個參數            //建立一個寫檔案的流並傳遞給緩衝區寫對象的建構函式            bufw=new BufferedWriter(new FileWriter("buffer_copy.txt"));            //建立一個讀檔案的流並傳遞給緩衝區讀對象的建構函式            bufr=new BufferedReader(new FileReader("FileRead.java"));            //緩衝區返回一個String值,當緩衝區中沒有資料是值為null            String line=null;            //緩衝區寫對象有一個readLine函數,用來按行讀取資料            while((line=bufr.readLine())!=null){            //緩衝區寫對象也有write函數                    bufw.write(line);            //newLine將讀到的資料換行,也就是按原來資料格式一致來儲存                    bufw.newLine();            //重新整理資料到檔案中                    bufw.flush();            }        }                catch(IOException e){                        throw new RuntimeException("讀寫錯誤");        }        finally{                         try{                                if(bufw!=null){                                bufw.close();            }                      }            catch(IOException e){                                throw new RuntimeException("寫錯誤");            }             try{                                  if(bufr!=null){                                          bufr.close();                 }             }             catch(IOException e){                                  throw new RuntimeException("讀錯誤");             }        }    }}

運行結果

Java IO(input output)流<二>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.