字符緩沖流BufferedWriter和BufferedWriter
阿新 • • 發佈:2018-09-27
系統 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(); 19bw.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