java.io.BufferedWriter extends Writer
BufferedWriter:字元緩衝輸出流
繼承自父類別的共性成員方法:
-void write(int c)寫入單個字元
-void write(char[] cbuf)寫入字元陣列
-abstract void write(char[] cubf,int of ,int len)寫入字元陣列的某一部分,off陣列開始索引,len寫的字元個數
-void write(String str)寫入字串
-void write(String str,int off,int len)寫入字串的某一部分,off字串開始索引,len寫的字元個數
-void flush()重新整理該流的緩衝
-void close()關閉此流,但要先重新整理它
構造方法:
BufferedWriter(Writer out) 建立一個使用預設大小輸出緩衝區的緩衝字元輸出流
BufferedWriter(Writer out,int sz)建立一個使用給定大小輸出緩衝區的新緩衝字元輸出流
引數:
Writer out :輸出流
我們可以傳遞FileWriter,緩衝流會給FileWriter增加一個緩衝區,提高FileWriter的寫入效率
int sz:指定緩衝區的大小,不寫預設大小
特有的成員方法:
void newLine() 寫一個行分隔符。會根據不同的作業系統,獲取不同的行分隔符
換行:換行符號
windows:\r\n
linux:/n
mac:/r
使用步驟:
1.建立字元緩衝輸出流物件,構造方法中傳遞字元輸出流
2.呼叫字元緩衝輸出流中的方法write,把資料寫入到記憶體緩衝區中
3.呼叫字元緩衝輸出流中的方法flush,把記憶體緩衝區中的資料。重新整理到檔案中
4.釋放資源
public class Demo03BufferedWriter { public static void main(String[] args) throws IOException { // System.out.println(); //newLine() //1.建立字元緩衝輸出流物件,構造方法中傳遞字元輸出流 BufferedWriter bw = new BufferedWriter(new FileWriter("基礎語法\\c.txt")); //2.呼叫字元緩衝輸出流中的方法write,把資料寫入到記憶體緩衝區中 for (int i = 0; i <10 ; i++) { bw.write("老王程式設計"); // bw.write("\r\n"); bw.newLine(); } //3.呼叫字元緩衝輸出流中的方法flush,把記憶體緩衝區中的資料。重新整理到檔案中 bw.flush(); // 4.釋放資源 bw.close(); } }
java.io.BufferedReader extends Reader
BufferedReader:字元緩衝輸入流
繼承自父類別的共性成員方法:
int read() 讀取單個字元並返回
int read(char[] cbuf)一次讀取多個字元,將字元讀入陣列
void close() 關閉該流並釋放與之關聯的所有資源
構造方法:
BufferedReader(Reader in) 建立一個使用預設大小輸入緩衝區的緩衝字元輸入流
BufferedReader(Reader in, int sz) 建立一個使用指定大小輸入緩衝區的緩衝字元輸入流
引數:
Reader in:字元輸入流
我們可以傳遞FileReader,緩衝流會給FileReader增加一個緩衝區,提高FileReader的讀取效率
特有的成員方法:
String readLine() 讀取一個文字行。讀取一行資料
行的終止符號:通過下列字元之一即可認為某行已終止:換行 ('\n')、回車 ('\r') 或回車後直接跟著換行(\r\n)
返回值:
包含該行內容的字串,不包含任何行終止符,如果已到達流末尾,則返回 null
使用步驟:
1.建立字元緩衝輸入流物件,構造方法中傳遞字元輸入流
2.使用字元緩衝輸入流物件中的方法read/readLine讀取文字
3.釋放資源
public class Demo04BufferedReader { public static void main(String[] args) throws IOException { //1.建立字元緩衝輸入流物件,構造方法中傳遞字元輸入流 BufferedReader br = new BufferedReader(new FileReader("10_IO\\c.txt")); //2.使用字元緩衝輸入流物件中的方法read/readLine讀取文字 /*String line = br.readLine(); System.out.println(line); line = br.readLine(); System.out.println(line); line = br.readLine(); System.out.println(line); line = br.readLine(); System.out.println(line);*/ /* 發下以上讀取是一個重複的過程,所以可以使用迴圈優化 不知道檔案中有多少行資料,所以使用while迴圈 while的結束條件,讀取到null結束 */ String line; while((line = br.readLine())!=null){ System.out.println(line); } //3.釋放資源 br.close(); } }