栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java的System.out.print()会一直缓存到println()吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java的System.out.print()会一直缓存到println()吗?

当by所使用的缓冲区

System.out.print
填满时,输出将写入文件(或连接到程序标准输出流的终端或其他数据目标)中,从而导致缓冲区为空。写输出而不关心缓冲区大小是正常用法。您将永远不会崩溃或阻塞程序,也不会因不调用而丢失数据
flush

flush
在需要立即使数据在程序外部可用时,才需要显式调用。例如,如果您的程序正在与另一个程序来回交换数据,并且您正在向该程序发送请求,并且将等待该程序的答复,则
flush
在发送请求后需要进行调用以确保另一个程序收到了该请求。
。同样,如果您的程序(或运行它的机器)崩溃了,则只能
flush
保证直到您最后一次调用时为止的输出已被写出。

如果将流设置为自动刷新,则写一个换行符(显式或通过

println
)与调用一样好
flush
。同时调用
close
也会调用
flush
(这就是为什么
close
会抛出一个
IOException
:的原因,它可能必须写出数据并且不能写数据,例如,因为流已连接到完整磁盘上的文件)。

请注意,如果所

System.out
连接的流尚未立即准备好接收数据(例如,当数据通过管道传输到不立即读取其输入的另一个程序时),则刷新缓冲区可能会导致程序阻塞。由于可以随时刷新缓冲区(因为缓冲区恰好已满),因此
print
使用非空参数进行的任何调用都可能会阻塞。

有关更多信息,请参见缓冲流教程和

java.io.PrintStream
该类的文档。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号