1、缓冲区介绍

缓冲区又称为缓存,它是内存空间的一部分,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区
 
 
 

2、为什么要缓冲区

从磁盘里取信息,我们先把读出的数据放在缓冲区,计算机再直接从缓冲区中取数据,等缓冲区的数据取完后再去磁盘中读取,这样就可以减少磁盘的读写次数,再加上计算机对缓冲区的操作大大快于对磁盘的操作,故应用缓冲区可大大提高计算机的运行速度,来缓存数据。它使得低速的输入输出设备和高速的CPU能够协调工作,避免低速的输入输出设备占用CPU,解放出CPU,使其能够高效率工作
 
 
 
 
 

3、缓冲区的分类

缓冲区的类型
缓冲区 分为三种类型:全缓冲、行缓冲和不带缓冲。
1) 全缓冲
在这种情况下,当填满标准I/O缓存后才进行实际I/O操作。全缓冲的典型代表是对磁盘文件的读写。

2) 行缓冲
在这种情况下,当在输入和输出中遇到换行符时,执行真正的I/O操作。这时,我们输入的字符先存放在缓冲区,等按下回车键换行时才进行实际的I/O操作。典型代表是标准输入(stdin)和标准输出(stdout)。

3) 不带缓冲

也就是不进行缓冲&#x

C和指针之IO流和缓冲区相关推荐

  1. C++ Primer 5th笔记(8)chapter8 类:IO库-流的缓冲区

    1. 介绍 • 每个输出流都管理一个缓冲区,用来保存程序读写的数据 • 操作系统就可以将程序的多个输出操作组合成单一的系统级写操作(提升性能,设备的写操作很耗时) 2. 缓冲区类型:全缓冲.行缓冲和不 ...

  2. 黑马程序员-JAVA基础-IO流之字符流和字符流缓冲区

    ------- android培训.java培训.期待与您交流!------- Java 的IO 流 是实现输入和输出的基础,Java 中把不同的输入.输出源抽象表述为"流" (S ...

  3. Java基础班学习笔记(13)IO流

    知识要点: 1:异常(理解) (1)程序出现的不正常的情况. (2)异常的体系 Throwable |--Error 严重问题,我们不处理. |--Exception |--RuntimeExcept ...

  4. Java基础篇:IO流

    文章目录 一.File类的使用 File类的概述 File类的实例化 File类的常用方法 二.IO流原理及流的分类 Java IO原理 流的分类 流的体系结构 输入.输出的标准化过程 三.节点流(文 ...

  5. C语言IO流存储数据,C++的IO流

    1.回忆C语言的IO流 getchar()          //字符输入函数 putchar()          //字符输出函数 fgetc()/getc()     //字符输入函数 fput ...

  6. python io流a+_Python基础——文件操作及IO流

    一.文件的基本操作:打开.读取.关闭 # 绝对路径 # f = open(r'G:\Envs\Bilitest\笔记\test.txt', 'r') # 相对路径 f = open(r'test.tx ...

  7. Java基础:常用IO流

    1. 数据流 1.1 概述 数据流是操作基本数据类型的流,分为数据输入流,数据输出流. 1.2 数据输入流 1.DataInputStream:数据输出流允许应用程序以适当方式将基本 Java 数据类 ...

  8. C++IO流,istream status(状态位),cout,cin,if(非fs)/while(cin)【C++IO流】(58)

    IO流 IO流类 Hierarchy(层次架构) 流类特性(从ios继承下来的共有的特性) 不可赋值和复制 缓冲 重载了<< >> istream status(状态位) 状态 ...

  9. Java学习笔记-7.Java IO流

    一.输入/输出流 1.流:不同类型的输入.输出源    数据流:输入或输出的数据 Java数据流的所有接口和类都是在java.io包中定义的,因此应在程序开头加入 import java.io.* 2 ...

最新文章

  1. 【C++】多线程(链式、循环队列)实现生产者消费者模式
  2. 单片机基础课程有哪些?
  3. Atomikos 中文说明文档【转】
  4. flask连接不到mysql数据库,即使使用了python flask mysql,也无法将数据提交到数据库(使用python flask mysql)连接.提交()...
  5. gorm增删查改json_gorm 关联查询请教
  6. 数据流DataInput(Output)Stream 和 字节数组流 ByteArrayInput(Output) Stream
  7. PHP实现数组中两个数的和等于给定的目标值
  8. php -- 取整数
  9. 草稿 断开式的连接 1127
  10. Android找工作系列之事件传递机制
  11. 计算机网络实验报告 接墙上的,计算机网络实验报告模板.doc
  12. 【C语言】C语言从入门到精通 | 第3章 数据类型(一)— 自学笔记
  13. 怎样写好一篇高质量的技术文章?
  14. 褚橙是如何用互联网营销颠覆橙子的?
  15. 如何在柿饼派中用mqtt接收数据并进行解析
  16. 读书百客:《送客之江西》赏析
  17. 【教程】如果公司的网络屏蔽了游戏【英雄联盟】的链接请求,使用这种方法玩游戏。...
  18. 全新 Google Pixel Watch 重磅上线 | 着手为 Wear OS 构建应用!
  19. Python批量转换:docx-doc
  20. java毕业设计成品源码网站javaweb企业财务|记账|账单管理系统

热门文章

  1. C#内建接口:IComparable
  2. c# 按位与,按位或
  3. NET问答: 如何让 HttpClient 支持 Http 2.0 协议?
  4. .NET | 多线程下的调用上下文 : CallContext
  5. NET问答: 如何将 DataTable 转成 IEnumerableT ?
  6. 自由、开源及其敌人 —— RMS事件簿
  7. c#如何识别一张图片的格式
  8. C# 中的 in 参数和性能分析
  9. 【WPF】DataGrid多表头的样式设计
  10. .NET Core 3.0中IAsyncEnumerableT有什么大不了的?