黑马程序员技术交流社区
标题:
这两个有什么区别呢
[打印本页]
作者:
张海洋
时间:
2013-3-24 20:25
标题:
这两个有什么区别呢
本帖最后由 张海洋 于 2013-3-24 21:06 编辑
BufferedReader、BufferedWriter
作者:
疯狂程序
时间:
2013-3-24 20:36
/*
缓冲区的出现是为了提高流的操作效率而出现的
所以在创建缓冲区之前,必须要有流对象
该缓冲区中提供了一个跨平台的换行符newLine();
*/
import java.io.*;
public class BufferedWriterDemo
{
public static void main(String[] args)
{
BufferedWriterDemo();
BufferedReaderDemo();
}
/*
字符写入流缓冲区
*/
public static void BufferedWriterDemo()
{
try
{
//创建一个字符写入流对象
FileWriter fw=new FileWriter("d:\\a.txt");
//为了提高字符写入流的效率,加入了缓冲技术
//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<5;i++)
{
bw.write("abc"+i);
bw.newLine();
bw.flush();
}
bw.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
/*
字符读取流缓冲区
该缓冲区提供一个一次读一行的方法readLine(),方便对文本数据的读取
当返回null时,表示读到文本末尾
*/
public static void BufferedReaderDemo()
{
try
{
//创建一个字符读取流对象并和文件关联
FileReader fr=new FileReader("d:\\a.txt");
//为了提高效率,加入缓冲技术,将字符读取流对象作为参数传递给缓冲对象的构造函数
BufferedReader br=new BufferedReader(fr);
String str=null;
while((str=br.readLine())!=null)
{
System.out.println(str);
}
br.close();
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
作者:
边道坚
时间:
2013-3-24 20:37
1. java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
2. 从标准输入流System.in中直接读取使用者输入时,使用者每输入一个字符,System.in就读取一个字符。为了能一次读取一行使用者的输入,使用了BufferedReader来对使用者输入的字符进行缓冲。readLine()方法会在读取到使用者的换行字符时,再一次将整行字符串传入。
3. System.in是一个位流,为了转换为字符流,可使用InputStreamReader为其进行字符转换,然后再使用BufferedReader为其增加缓冲功能
作者:
彭波
时间:
2013-3-24 20:37
本帖最后由 彭波 于 2013-3-24 20:42 编辑
BufferedReader是读取字符流缓冲区
BufferedWriter是写入字符流缓冲区
这两个都是提高字符读取与写入的速度
这两个要结合相应的字符流才能使用
可以看看字符流体系:
http://bbs.itheima.com/forum.php?mod=attachment&aid=MTQxODZ8ZDdkOThkNWVjMWUwZjBhODBjYmYzZGNlNmY3NTUyN2N8MTczMjI5MTMyNg%3D%3D&request=yes&_f=.png
捕获1.PNG
(21.09 KB, 下载次数: 45)
下载附件
2013-3-24 20:41 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2