0
点赞
收藏
分享

微信扫一扫

网络编程(part4)--刷新缓冲区

鄙人学习笔记


文章目录

  • ​​刷新缓冲区​​
  • ​​举个例子1(行缓冲)​​
  • ​​举个例子2(只有把系统默认缓冲区大小写满,才会自动刷新)​​
  • ​​举个例子3(flush()刷新缓冲区)​​

刷新缓冲区

  • 缓冲区刷新函数
flush()

该函数被调用后,会进行一次磁盘交互,将缓冲区中的内容写入到磁盘。

我们用下面的个例子,具体学习一下行缓冲和缓冲区函数的用法及作用。

举个例子1(行缓冲)

输入以下代码:
网络编程(part4)--刷新缓冲区_刷新缓冲区

在控制台输入:
网络编程(part4)--刷新缓冲区_网络编程_02

我们看一下,我们写入的文件test:
网络编程(part4)--刷新缓冲区_刷新缓冲区_03

你没看错!是空的~

现在我们更改一下代码:
网络编程(part4)--刷新缓冲区_行缓冲_04

在控制台输入:
网络编程(part4)--刷新缓冲区_刷新缓冲区_05

我们再看一下,我们写入的文件test:
网络编程(part4)--刷新缓冲区_网络编程_06

以上结果论证了我们的理论:行缓冲在遇到换行符时,才会与磁盘进行交互。即在行缓冲模式下,数据从缓冲区写入磁盘的条件是:遇到换行符。

举个例子2(只有把系统默认缓冲区大小写满,才会自动刷新)

输入以下代码:
网络编程(part4)--刷新缓冲区_网络编程_07

在控制台输入:
网络编程(part4)--刷新缓冲区_网络编程_08

看一下文件test:
网络编程(part4)--刷新缓冲区_行缓冲_09

空的~~因为就这么几个字节,是不会把系统默认缓冲区写满的,我们退出循环,close一下文件对象,刷新一下缓冲区:
网络编程(part4)--刷新缓冲区_行缓冲_10

看一下文件test:
网络编程(part4)--刷新缓冲区_flush_11

有数据啦~
那么有没有不用关闭文件,就可以立即刷新缓冲区的方法呢?有的呢,用flush函数就可以了!请看下面的例子。

举个例子3(flush()刷新缓冲区)

输入以下代码:
网络编程(part4)--刷新缓冲区_网络编程_12

在控制台输入:
网络编程(part4)--刷新缓冲区_python_13

看一下文件test:
网络编程(part4)--刷新缓冲区_行缓冲_14

嗯~有数据了呢,说明我们调用flush()方法会立即刷新缓冲区,将数据写入磁盘。

举报

相关推荐

0 条评论