Java IO流 flush()的作用和缓冲流

这篇具有很好参考价值的文章主要介绍了Java IO流 flush()的作用和缓冲流。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java 缓冲流和flush()的作用

哪些流是缓冲流,哪些流带有缓冲区?

  1. 哪些流是缓冲流
    根据Java官方文档关于Buffered Streams的介绍,缓冲流有四种:

    • BufferedInputStream:包装字节输入流
    • BufferedOutputStream:包装字节输出流
    • BufferedReader:包装字符输入流
    • BufferedWriter:包装字符输出流
      这些流又被称为包装流/处理流,用于包装非缓冲的流

    There are four buffered stream classes used to wrap unbuffered streams: BufferedInputStream and BufferedOutputStream create buffered byte streams, while BufferedReader and BufferedWriter create buffered character streams.
    ——JAVA Documentation:Basic I/O

  2. 哪些流带有缓冲区?

    1. 所以被包装流包装过的流都是使用缓冲区的;
    2. 缓冲流使用缓冲区;
    3. 字节流默认不使用缓冲区;
    4. 字符流使用缓冲区。

flush()方法的作用

flush():冲洗缓冲区,强制将缓冲区中的数据全部写入目标位置,清空缓冲区,不关闭流对象;

为什么用flush():在使用Bufferd Streams输出流对象时,我们需要对缓冲区进行冲洗,因为我们读取数据时,数据会先被读取在缓冲区中,为了确保输出流中的数据被全部写入,要flush缓冲区,否则数据会停留在缓冲区,不会输出,导致数据损失;

flush() :To flush output stream, use void flush() method of DataOutputStream class. This method internally calls flush() method of underlying OutputStream class which forces any buffered output bytes to be written in the stream.
源自:https://stackoverflow.com/a/9272658/21906030

Flushing Buffered Streams
It often makes sense to write out a buffer at critical points, without waiting for it to fill. This is known as flushing the buffer.
.
Some buffered output classes support autoflush, specified by an optional constructor argument. When autoflush is enabled, certain key events cause the buffer to be flushed. For example, an autoflush PrintWriter object flushes the buffer on every invocation of println or format. See Formatting for more on these methods.
.
To flush a stream manually, invoke its flush method. The flush method is valid on any output stream, but has no effect unless the stream is buffered
——JAVA Documentation:Basic I/O文章来源地址https://www.toymoban.com/news/detail-445433.html

到了这里,关于Java IO流 flush()的作用和缓冲流的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux】基础IO —— 缓冲区深度剖析

    (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是 Scort 目前状态:大三非科班啃C++中 🌍博客主页:张小姐的猫~江湖背景 快上车🚘,握好方向盘跟我有一起打天下嘞! 送给自己的一句鸡汤🤔: 🔥真正的大师永远怀着一颗学徒的心 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏 🎉🎉

    2024年02月02日
    浏览(53)
  • 【玩转Linux】标准io缓冲区的操作

    (꒪ꇴ꒪ ),hello我是 祐言 博客主页:C语言基础,Linux基础,软件配置领域博主🌍 快上🚘,一起学习! 送给读者的一句鸡汤🤔: 集中起来的意志可以击穿顽石! 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏         标准I/O缓冲区是用于提高I/O性能的一种机制,

    2024年02月16日
    浏览(54)
  • C++IO类,输入输出缓冲区,流状态

    我们的程序已经使用了很多IO库设施: istream(输入流)类型,提供输入操作。 ostream(输出流)类型,提供输出操作。 cin,一个istream对象,从标准输入读取数据。写入到标准错误。 cout,一个ostream对象,向标准输出写入数据。 cerr,一个ostream对象,通常用于输出程序错误消息,

    2024年04月12日
    浏览(39)
  • 【Linux】天天直接IO?我说停停,不如试试文件缓冲区

    收录于【Linux】文件系统 专栏 关于文件描述符与文件重定向的相关内容可以移步 文件描述符与重定向操作。 可以到 浅谈文件原理与操作 了解文件操作的系统接口。 目录 系列文章 揭秘C库文件结构体  文件缓冲区 为什么需要文件缓冲区 刷新机制 内核文件缓冲区 模拟实

    2024年02月09日
    浏览(104)
  • 深入解析MySQL双写缓冲区(Doublewrite Buffer):原理及作用

    MySQL的InnoDB存储引擎以其卓越的事务处理和数据完整性保护能力而受到广泛赞誉。在这些特性中,Doublewrite Buffer作为一个关键组件,确保了数据的完整性和可靠性。在这篇文章中,我们将深入探讨Doublewrite Buffer的原理、作用及其在MySQL中的重要地位。 Doublewrite Buffer是MySQL数据库

    2024年01月22日
    浏览(39)
  • 【从入门到起飞】IO高级流(1)(缓冲流,转换流,序列化流,反序列化流)

    🎊专栏【JavaSE】 🍔喜欢的诗句:天行健,君子以自强不息。 🎆音乐分享【如愿】 🎄欢迎并且感谢大家指出小吉的问题🥰 在代码中使用缓冲流(Buffered Streams)有许多好处,特别是在处理I/O操作时,它们可以显著提高性能和效率。缓冲流是一种在内存中创建缓冲区的I/O流,

    2024年02月08日
    浏览(45)
  • 请简单介绍一下Shiro框架是什么?Shiro在Java安全领域的主要作用是什么?Shiro主要提供了哪些安全功能

    会话管理(Session Management):Shiro能够管理用户的会话状态,包括会话的创建、维护和销毁。它支持多种会话存储方式(如内存、数据库等),并提供了会话超时、会话失效等机制,以确保会话的安全性。 跨平台集成:Shiro不仅适用于Web应用程序,还可以轻松集成到桌面应用

    2024年04月13日
    浏览(60)
  • 请简单介绍一下Shiro框架是什么?Shiro在Java安全领域的主要作用是什么?Shiro主要提供了哪些安全功能?

    请简单介绍一下Shiro框架是什么? Shiro框架是一个强大且灵活的开源安全框架,为Java应用程序提供了全面的安全解决方案。它主要用于身份验证、授权、加密和会话管理等功能,可以轻松地集成到任何Java Web应用程序中,并提供了易于理解和使用的API,使开发人员能够快速实

    2024年04月11日
    浏览(58)
  • Glide - Android的图像加载和缓存库,专注于平滑滚动

    GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling An image loading and caching library for Android focused on smooth scrolling Glide is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a si

    2024年02月07日
    浏览(54)
  • 【C语言趣味教程】(8) 标准 IO 流:输入和输出 | 标准输入 stdin | 标准输出 stdout | 详解 printf 和 scanf | 探讨 scanf 缓冲区问题和安全性问题

        🔗 《C语言趣味教程》👈 猛戳订阅!!! 0x00 引入:I/O 的概念 计算机中的输入和输出,简称 ,其中:  代表 Input,即输入。

    2024年02月09日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包