黑马程序员技术交流社区

标题: 关于打印输出流的一些疑惑! [打印本页]

作者: 何明辉    时间: 2012-8-16 19:30
标题: 关于打印输出流的一些疑惑!
import java.io.*;
class PrintWriterDemo
{
public static void main(String[] args)throws IOException
{
  PrintStream p1=new PrintStream(System.out);
      p1.write("vrey good!".getBytes());-------1
    p1.println("very good!".getBytes());-------2
    p1.println("very good!");
   System.out.println("very good".getBytes());----3
   p1.close();
}
}
上面程序中分别用write和println的方法输出“very good!”,但是却得到的结果不一样,难道println方法不是将数据写入流中吗,它和write有什么不一样啊,
2处和3处本质是一样的吧?只不过2处可以打印到文件中,而3只能打印到控制台,还有其他区别吗?另外2处为什么不需要刷新
还有既然是操作字节流数据,为什么1处还需要刷型啊,我个人认为不管是字节流还是字符流只要数据被缓冲了就一定要刷新啊,这样理解对吗?

作者: 王冰    时间: 2012-8-16 20:34
这是因为println带有自动换行功能,而换行之后java虚拟机就知道数据输入已经完成,所以就把数据打印出去了;
write是不带换行功能的,所以要刷新告诉虚拟机,这样java虚拟机才知道数据输入完成,把数据打印到控制台




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2