文件缓冲区
01.文件缓冲区是一个内存空间,通常为一个先进先出(FIFO)队列。
- 文件缓冲区用于保存文件写入的内容,当缓冲区满或达到阈值,则缓冲区中的数据会被写入磁盘上。
- 文件缓冲区的设置为open()方法中的buffering参数:
- -1,使用缺省大小的buffer:
- 若是二进制模式,使用io.DEFAULT_BUFFER_SIZE的值,默认为4096或者8192。
- 若是本文模式,如果是终端设备,则使用行缓存方式;负责使用二进制模式的策略。
- 0,只在二进制模式使用,表示关闭buffer;当数据写入时,直接写入磁盘。
- 1,只在文本模式使用,表示使用行缓冲;当数据写入时,遇见换行符则写入磁盘。
- 当写入的时候,与换行符一同写入的内容,将作为整体写入磁盘,即使这些内容在换行符之后。
- 大于1,用于指定buffer的大小。
- 若是文本模式,指定的buffer大小并不生效,会使用默认的缓冲区大小。
- 若是二进制模式,指定的buffer大小,超出设置的缓冲区后会执行flush()。
- -1,使用缺省大小的buffer:
- 文件缓冲区的方法包括:
- flush(),将缓冲区数据写入磁盘;close()方法执行时会调用flush()方法。
- 执行seek()方法的时候会强执行一次flush()。
- flush(),将缓冲区数据写入磁盘;close()方法执行时会调用flush()方法。
- 文件缓冲区的注意事项:
- 文本模式下,一般都用默认缓冲区大小。
- 二进制模式下,是一个个字节的操作,可以指定buffer的大小。
- 通常默认缓冲区是个较好的选择,不需要调整;编程过程中,明确要写磁盘了,就手动调用一次flush()。
文档更新时间: 2020-04-20 00:09 作者:闻骏