13 IO流(十)——BufferedReader/BufferedWriter 装饰流
Buffered字符包装流
与Buffered字节装饰流一样,只不过是对字符流进行包装。
需要注意的地方
Buffered字符流在Reader与Writer上有两个新的方法:String readLine()与 void newLine()
所以Buffered字符流不能够使用多态,也就是:Writer w = new BufferedWriter();
这样虽然不报错,但使用不了新的这两个方法。
构造方法
需要特别提到的一个构造其:BufferedWriter(Writer w,int sz) 它表示创建一个缓冲区大小为sz的缓冲字符输出流。
缓冲字符输入流同理。
案例实现
使用Buffered字符装饰流包装一个File字符流,copy文本文件。
import java.io.*; /** *BufferedReader与BufferedWriter *包装File字符流 *实现纯文本文件的拷贝 */ public class IOTest02 { public static void main(String[] args){ //文件 String srcPath = "a.txt";//文件源 String destPath = "a_cp.txt";//目的地 copy(srcPath,destPath); } public static void copy(String srcPath,String destPath){ //选择流 //操作 try(BufferedReader br = new BufferedReader(new FileReader(srcPath)); BufferedWriter bw = new BufferedWriter(new FileWriter(destPath))){//语法糖关闭流 String line = null; while((line = br.readLine())!=null){//从文件中读一行(找到换行符) bw.write(line);//写一行 bw.newLine();//写一个换行符 } bw.flush();//刷新 }catch(IOException e){ e.printStackTrace(); } } }