黑马程序员技术交流社区
标题:
缓冲区的小疑惑
[打印本页]
作者:
胥文
时间:
2013-1-25 23:16
标题:
缓冲区的小疑惑
本帖最后由 张向辉 于 2013-1-27 10:44 编辑
为了提高流对象的操作效率而有了缓冲区,为什么在写入流中加缓冲时要加flush(),而在读取流中就没有flush()了
代码:
BufferedReader bufr = new BufferedReader(new FileReader("Demo.txt"));
String line = null;
while("line=bufr.readLine()"!=null)//
此处读到的数据没有存到缓冲区吗,为什么下面不需要刷新
{
System.out.println(line)
}
bufr.close();
****************************
BufferedWriter bufw = new BufferedWriter(new FileWriter("Demo.txt"))
bufw.write("asdfg");//
此处写到缓冲区了,所以下面有刷新
bufw.flush();
bufw.close()
作者:
周志强
时间:
2013-1-26 00:22
flush方法是接口Flushable中的flush方法,而在Flushable接口中只有BufferedWriter等的写入方法才可以使它的子类,
因为Flushable 是可刷新数据的目标地。调用 flush 方法将所有已缓冲输出写入底层流。
flush void
flush
() throws IOException
通过将所有已缓冲输出写入底层流来刷新此流。
而读的操作时从字符串中读取,不需要什么刷新了吧
嘿嘿 可以帮到你 加油
作者:
黄锦成
时间:
2013-1-26 07:55
while("line=bufr.readLine()"!=null),你这句代码写错了,while("line=bufr.readLine()"!=null)把里面的引号去掉;还有你在while里面没有写到输出流中
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2