r 只能读
r+ 可读可写,不会创建不存在的文件。如果直接写文件,则从顶部开始写,覆盖之前此位置的内容,如果先读后写,则会在文件最后追加内容。
w 只能写 覆盖整个文件 不存在则创建
w+ 可读可写 如果文件存在 则覆盖整个文件不存在则创建。
a 只能写 从文件底部添加内容 不存在则创建
a+ 可读可写 从文件顶部读取内容 从文件底部添加内容 不存在则创建。
r+,w+,a+ 三种模式总结:
- 如果是先调整指针,再写入(调整指针和写入中间没有读取操作),则三种模式都是覆盖之前此位置的内容。
- 如果是先读取内容(无论何种方式读取read(),readline(),readlins()),再写入,则三种模式都是追加内容。
- r+可以直接读取,w+要先写入数据,调整指针后读取,否则读取为空,a+调整指针后才能读取。