我是Ruby的新程序员。有人可以举一个关于用Ruby中的r +,w +,a +模式打开文件的例子吗?他们和r,w,a之间有什么区别?
请解释,并举例说明。
答案 0 :(得分:96)
文件打开模式并不是特定于ruby的 - 它们是IEEE Std 1003.1(Single UNIX Specification)的一部分。你可以在这里阅读更多相关信息:
http://pubs.opengroup.org/onlinepubs/009695399/functions/fopen.html
r or rb
Open file for reading.
w or wb
Truncate to zero length or create file for writing.
a or ab
Append; open or create file for writing at end-of-file.
r+ or rb+ or r+b
Open file for update (reading and writing).
w+ or wb+ or w+b
Truncate to zero length or create file for update.
a+ or ab+ or a+b
Append; open or create file for update, writing at end-of-file.
任何包含字母'b'的模式代表二进制文件。如果'b'不存在则是'纯文本'文件。
'open'和'open for update'之间的区别表示为:
当使用更新模式打开文件时('+'作为mode参数中的第二个或第三个字符),可以在关联的流上执行输入和输出。但是,应用程序应确保输出不直接跟随输入,而无需调用fflush()或文件定位函数(fseek(),fsetpos()或rewind()),并且输入不会直接跟随除非输入操作遇到文件结尾,否则输出时不会调用文件定位功能。