A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何明辉 中级黑马   /  2012-8-16 19:30  /  1196 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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处还需要刷型啊,我个人认为不管是字节流还是字符流只要数据被缓冲了就一定要刷新啊,这样理解对吗?

1 个回复

倒序浏览
这是因为println带有自动换行功能,而换行之后java虚拟机就知道数据输入已经完成,所以就把数据打印出去了;
write是不带换行功能的,所以要刷新告诉虚拟机,这样java虚拟机才知道数据输入完成,把数据打印到控制台
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马