黑马程序员技术交流社区
标题:
为什么PrintWriter的自动刷新功能有限制?
[打印本页]
作者:
李大强
时间:
2013-2-8 18:08
标题:
为什么PrintWriter的自动刷新功能有限制?
为什么PrintWriter的自动刷新功能只能用作于有换行标记的方法?
源代码如下:
import java.io.*;
class PrintStreamDemo
{
public static void main(String[] args) throws IOException
{
BufferedReader bufr =
new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new FileWriter("a.txt"),true);//这时启用了自动刷新功能
String line = null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
out.println(line.toUpperCase());//此方法可以完成自动刷新,但前提是必须携带有换行符的方法
}
out.close();
bufr.close();
}
}
作者:
黄基焜
时间:
2013-2-14 10:01
看API文档的解释:
public PrintWriter(OutputStream out,
boolean autoFlush)通过现有的 OutputStream 创建新的 PrintWriter。此便捷构造方法创建必要的中间 OutputStreamWriter,后者使用默认字符编码将字符转换为字节。
参数:
out - 输出流
autoFlush - boolean 变量;
如果为 true,则 println、printf 或 format 方法将刷新输出缓冲区
作者:
郝强勇
时间:
2013-2-14 14:36
为什么PrintWriter的自动刷新功能只能用作于有换行标记的方法?
因为PrintWriter其实就是一个装饰类,是对基本功能的装饰,为了在操作时提供更方便的方法,我们在自己使用基本类的时候进行操作刷新的时候,是人为控制的,一般会在循环写入的语句中写上flush()刷新语句,而JDK不是人的大脑啊,只能给他标记,让其刷新,所以就把刷新方法封装到了PrintWriter中,标记就是换行。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2