1. 程式人生 > >字符緩沖流BufferedWriter和BufferedWriter

字符緩沖流BufferedWriter和BufferedWriter

系統 read amd strong while ioe throw 特殊功能 輸入緩沖

字符緩沖流

1、基本用法

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 
 7 /**
 8  * BufferedWriter:將文本寫入字符輸出流,緩沖各個字符,從而提供單個字符、數組和字符串的高效寫入。
 9  * BufferedWriter:從字符輸入流中讀取文本,緩沖各個字符,從而實現字符、數組和行的高效讀取。
10 * @author Administrator 11 * 12 */ 13 public class BufferedStreamDemo { 14 public static void main(String[] args) throws IOException { 15 //創建緩沖流對象 16 BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Test\\bw.txt")); 17 bw.write("hello"); 18 //bw.flush(); 19
bw.close(); 20 21 //一次讀取一個字符 22 //創建輸入緩沖流對象 23 BufferedReader br=new BufferedReader(new FileReader("C:\\Test\\bw.txt")); 24 int ch; 25 while((ch=br.read())!=-1) { 26 System.out.print((char)ch); 27 } 28 br.close(); 29 System.out.println();
30 //一次讀取一個字符數組 31 BufferedReader br2=new BufferedReader(new FileReader("C:\\Test\\bw.txt")); 32 int len=0; 33 char chs[]=new char[1024]; 34 while((len=br2.read(chs))!=-1) { 35 System.out.print(new String(chs,0,len)); 36 } 37 br2.close(); 38 } 39 }

2、緩沖流復制文本文件兩種方式

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 
 7 /**
 8  * 需求:把項目路徑下的BufferedStreamCopy.java中的內容復制到項目路徑下的copy.java中
 9  * @author Administrator
10  *
11  */
12 public class BufferedStreamCopy {
13     public static void main(String[] args) throws IOException {
14         BufferedReader br=new BufferedReader(new FileReader("BufferedStreamCopy.java"));
15         BufferedWriter bw=new BufferedWriter(new FileWriter("copy.java"));
16          //第一種方式,一次讀取一個字符
17 //        int ch;
18 //        while((ch=br.read())!=-1) {
19 //            bw.write(ch);
20 //        }
21         
22          //第二種方式,一次讀取一個字符數組
23         int len;
24         char[] chs=new char[1024];
25         while((len=br.read(chs))!=-1) {
26             bw.write(chs,0,len);
27         }
28     
29         br.close();
30         bw.close();
31         
32     }
33 }

3、緩沖流的特殊功能

BufferedWriter:

    void newLine():寫一個換行符,這個換行符由系統決定

BufferedReader

    String readLine():一次讀取一行數據,但是不讀取換行符

 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileReader;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 
 7 /**
 8  * 需求:把項目路徑下的BufferedStreamCopy.java中的內容復制到項目路徑下的copy.java中
 9  * @author Administrator
10  *
11  */
12 public class BufferedStreamCopy {
13     public static void main(String[] args) throws IOException {
14         BufferedReader br=new BufferedReader(new FileReader("copy1.java"));
15         BufferedWriter bw=new BufferedWriter(new FileWriter("copy2.java"));
16         String str;
17         while((str=br.readLine())!=null) {
18             bw.write(str);
19             bw.newLine();
20         }
21         br.close();
22         bw.close();
23         
24         BufferedReader brshow=new BufferedReader(new FileReader("copy2.java"));
25         String str2;
26         while((str2=brshow.readLine())!=null) {
27             System.out.println(str2);
28         }        
29         brshow.close();
30         
31     }
32 }

字符緩沖流BufferedWriter和BufferedWriter