------- android培训、java培训、期待与您交流! ----------
七、字符流的缓冲区
缓冲区的出现提高了对数据读写的效率;
缓冲区要结合流才能使用;
在流的基础上对流的功能进行了增强。
对应类:
7.1、BufferedWriter类
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。
使用示例:
class BufferedWriter
{
public static void main(String[] args)
{
//创建一个字符写入流
FileWriter fw = new FileWriter("buff.txt");
//为了提高字符写入流效率,加入了缓冲技术
//只要讲需要被条效率的流对象作为参数传递给缓冲区的构造函数即可
BufferedWriter buf = new BufferedWriter(fw);
buf.write("avasd");
//换行方法
buf.newLine();
//只要用到缓冲去,就要刷新
buf.flush();
//关闭缓冲区,就是在关闭缓冲区中的流对象
buf.close();
}
}
7.2、BufferedReader类
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
使用示例:
class BufferedWriter
{
public static void main(String[] args)
{
//创建一个读取流对象和文件相关联
FileReader fr = new FileReader("buf".txt);
//为了提高效率,加入缓冲技术,将字符读取流对象作为参数传递给缓冲对象的构造函数
BufferedReader bufr = new BufferedReader(fr);
String line = null;
while((line = bufr.readLine())!=null)
{
System.out.print(line);
}
bufr.close();
}
}
该缓冲区提供了一个一次读一行的方法——readLine,方便于对文本数据的获取。当返回null时,表示独到文件末尾。