缓冲区是为了提高流的效率而出现的,因此在创建缓冲区之前,应先有流对象!
1、BufferedWriter :该缓冲区中提供了一个跨平台的换行符:newLine();
import java.io.*;
public class BufferedWriterDemo
{
public static void main(String[] args) throws IOException
{
FileWriter f=new FileWriter("abc.txt",true);
//为了提高字符的写入效率,加入了缓冲技术。
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
BufferedWriter bufw=new BufferedWriter(f);
for(int i=0;i<5;i++)
{
bufw.write("abcdedf");
bufw.newLine();
bufw.flush(); //只要用到缓冲区,就要记得刷新
}
bufw.close(); //关闭缓冲区,就是在关闭缓冲区中的流对象
}
}
2、BufferedReader:该缓冲区提供了一个一次读一行的方法:readLine();
FileReader r=new FileReader("abc.txt");
BufferedReader bufr=new BufferedReader(r);
String s1=null;
while((s1=bufr.readLine())!=null) //当读到null时,表示读到文件的末尾处
<span style="white-space:pre"> </span>System.out.println(s1);
bufr.close();
3、练习:用缓冲区做一个Copy程序
import java.io.*;
public class Copy
{
public static void main(String[] args)
{
FileWriter f=null;
FileReader r=null;
BufferedWriter bufw=null;
BufferedReader bufr=null;
try
{
f=new FileWriter("C:\\Users\\LJ_Z\\Desktop\\abcd.txt");
r=new FileReader("abc.txt");
bufw=new BufferedWriter(f);
bufr=new BufferedReader(r);
String s=null;
while((s=bufr.readLine())!=null)
{
bufw.write(s);
bufw.newLine();
bufw.flush();
}
}
catch(IOException e)
{
System.out.println("缓冲区发生异常");
}
finally
{
try
{
if(bufw!=null)
bufw.close();
}
catch(IOException e1)
{
System.out.println("写缓冲区关闭发生异常");
}
try
{
if(bufr!=null)
bufr.close();
}
catch(IOException e1)
{
System.out.println("读缓冲区关闭发生异常");
}
}
}
}