日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java缓冲流,BufferedReader,BufferedWriter 详解

發布時間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java缓冲流,BufferedReader,BufferedWriter 详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



緩沖流,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 详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。