日期:2014-05-20  浏览次数:20720 次

PrintStream的一点疑惑,希望高手帮解答下,谢谢!
在api中对PrintStream是这样描述的:
PrintStream(OutputStream out) 
          创建新的打印流。 
PrintStream(OutputStream out, boolean autoFlush) 
          创建新的打印流。
PrintStream(String fileName) 
          创建具有指定文件名称且不带自动行刷新的新打印流。
 
那么按说这个是没有自动刷新功能的,也就是说要用flush方法才能把内存中的数据输出到文档中,但是我用代码实验了下:
PrintStream ps = new PrintStream(new FileOutputStream(new File("d:" + File.separator + "test.txt"))) ;
ps.print("hello ") ;

这个是可以正常将hello输出到test.txt文件中,但是我没有用flush()啊,为什么可以直接输出?

------解决方案--------------------
你看下 API:

为了自动刷新,可以创建一个 PrintStream;这意味着可在写入 byte 数组之后自动调用 flush 方法,可调用其中一个 println 方法,或写入一个换行符或字节 ('\n')。