java緩衝流,BufferedReader,BufferedWriter 詳解

來源:互聯網
上載者:User

標籤:java   buffered   reader   緩衝流   



緩衝流,BufferedReader,BufferedWriter
1)BufferedReader,BufferedWriter是更進階的流,二者的源和目的地必須是字元輸入資料流和字元輸出資料流.如果把字元輸入資料流做為BufferedReader流的源,把字元輸出資料流作為BufferedWriter流的目的地,那麼BufferedReader,BufferedWriter將有更強的讀、寫能力。

//建構函式BufferedReader(Reader in);BufferedWriter(Writer out);//常用方法int read();//讀取單個字元int read(char[] cbuf, int off, int len) //將字元讀入數組的某一部分String  readLine() //讀取一個文本行void write(int c)//寫入單個字元void write(String s, int off, int len)//寫入字串的某一部分。void write(char[] cbuf, int off, int len)//寫入字元數組的某一部分void newLine()//寫入一個行分隔字元//使用方法FileReader in= new FileReader("Student.txt");BufferedReader ino=new BufferedReader(in);//參數是字元流FileWriter out=new FileWrietr("Student.txt");BufferedWriter outo=new BufferedWriter(out);//參數是字元流

BufferedReader,BufferedWriter 是上層流,它們指向的是底層流,java緩衝技術將上層流和底層流串連。底層字元輸入資料流首先將資料讀入緩衝,BufferedReader流在從緩衝中讀資料;BufferedWriter流是將資料寫入緩衝,底層字元輸出資料流會不斷的將緩衝中的資料寫入到目的地。
程式舉例:

import java.io.*;public class test {   public static void main(String args[]) {      File file=new File("Student.txt");      String content[]={"這是一本書:","第一章:","第二章:","第三章:"};       try{           FileWriter outOne=new FileWriter(file);           BufferedWriter outTwo= new BufferedWriter(outOne);//參數時檔案字元流           for(String str:content) {               outTwo.write(str);//寫入一行字串               outTwo.newLine();//寫入新行           }           outTwo.close();           outOne.close();           FileReader inOne=new FileReader(file);           BufferedReader inTwo= new BufferedReader(inOne);//參數是字元流           String s=null;           while((s=inTwo.readLine())!=null) {             System.out.println(s);//讀入一行到s,就輸出           }           inOne.close();           inTwo.close();         }      catch(IOException e) {         System.out.println(e);      }     }}

2)從System.in中讀資料:從標準輸入資料流System.in中直接讀取使用者輸入時,使用者每輸入一個字元,System.in就讀取一個字元。為了能一次讀取一行使用者的輸入,使用了BufferedReader來對使用者輸入的字元進行緩衝。readLine()方法會在讀取到使用者的換行字元時,再一次將整行字串傳入。
System.in是一個位流,為了轉換為字元流,可使用InputStreamReader為其進行字元轉換,然後再使用BufferedReader為其增加緩衝功能。InputStreamReader是轉換流,將位元組流轉換為字元流
程式舉例:將鍵盤輸入的字串寫入檔案中

public class BufferedReaderWriterDemo   {   public static void main(String[] args)       {       try        {         //緩衝System.in輸入資料流         //System.in是位流,可以通過InputStreamReader將其轉換為字元流       BufferedReader bufReader = new BufferedReader(new InputStreamReader(System.in));        //緩衝FileWriter         BufferedWriter bufWriter = new BufferedWriter(new FileWriter("a.txt"));         String input = null;         //每讀一行進行一次寫入動作       while(!(input = bufReader.readLine()).equals("quit"))              {              bufWriter.write(input);             //newLine()方法寫入與作業系統相依的換行字元,依執行環境當時的OS來決定該輸出那種換行字元              bufWriter.newLine();              }              bufReader.close();              bufWriter.close();          }          catch(ArrayIndexOutOfBoundsException e)          {              System.out.println("沒有指定檔案");          }          catch(IOException e)          {              e.printStackTrace();          }      }  }  


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

java緩衝流,BufferedReader,BufferedWriter 詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.