Ruby中的文件打开模式

ami*_*mir 51 ruby posix file

我是Ruby的新程序员.有人可以举一个关于用Ruby中的r +,w +,a +模式打开文件的例子吗?他们和r,w,a有什么区别?

请解释一下,并提供一个例子.

mik*_*iku 103

文件打开模式并不是特定于ruby的 - 它们是IEEE Std 1003.1(单一UNIX规范)的一部分.你可以在这里读更多关于它的内容:

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.
Run Code Online (Sandbox Code Playgroud)

包含字母'b'的任何模式代表二进制文件.如果'b'不存在则是'纯文本'文件.

"打开"和"打开更新"之间的区别表示为:

当使用更新模式打开文件时('+'作为mode参数中的第二个或第三个字符),可以在关联的流上执行输入和输出.但是,应用程序应确保输出不直接跟随输入,而无需调用fflush()或文件定位函数(fseek(),fsetpos()或rewind()),并且输入不会直接跟随除非输入操作遇到文件结尾,否则输出时不会调用文件定位功能.