字符流缓冲区
缓冲区的出现是为了提高流的流的操作效率,所以在创建缓冲区之前必须先有流对象。
BufferedWriter
缓冲区提供了一个跨平台的换行符:newLine()
FileWriter fw=new FileWriter("D:/1.txt");//创建流对象
BufferedWriter bufw=new BufferedWriter(fw);//缓冲
for(int i=1;i<5;i++)
{
bufw.write("abc"+i);//缓冲区写入数据
bufw.newLine();//换行
bufw.flush();//一定要刷新
}
bufw.close();//关闭缓冲区,也同时关闭了流对象
BufferedReader
readLine:一次读一行,当返回null时表示文件末尾。
FileReader fr=new FileReader("E:/1.txt");
BufferedReader bufr=new BufferedReader(fr);
String line=null;
while((line=bufr.readLine())!=null)
{
System.out.println(line);
}
bufr.close();
练习:复制文本(通过缓冲区)
package recollect;
import java.io.*;
public class Bufferedwr {
public static void main(String[] args) {
copy();
}
public static void copy()
{
BufferedWriter bufw=null;
BufferedReader bufr=null;
try
{
bufw=new BufferedWriter(new FileWriter("D:/1.txt"));
bufr=new BufferedReader(new FileReader("E:/1.txt"));
String line=null;
while((line=bufr.readLine())!=null)
{
bufw.write(line);
bufw.newLine();
bufw.flush();
}
}
catch(IOException e)
{
throw new RuntimeException("fall");
}
finally
{
try
{
if(bufw!=null)
bufw.close();
if(bufr!=null)
bufr.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
}