“文件”对象(即w +,r +)的访问模式之间的区别

在Ruby中使用文件时, r+w+模式有什么区别? 那么a+模式呢?

请参阅http://www.tutorialspoint.com/ruby/ruby_input_output.htm

去引用:

[R
只读模式。 文件指针位于文件的开头。 这是默认模式。

R +
读写模式。 文件指针将在文件的开头。

w ^
只写模式。 如果文件存在,则覆盖该文件。 如果文件不存在,则创build一个新的文件进行写入。

W +
读写模式。 如果文件存在,则覆盖现有的文件。 如果文件不存在,则创build一个新的文件进行读写。

一个
只写模式。 如果文件存在,则文件指针位于文件末尾。 也就是说,该文件处于附加模式。 如果文件不存在,它将创build一个新的文件进行写入。

A +
读写模式。 如果文件存在,则文件指针位于文件末尾。 该文件以附加模式打开。 如果文件不存在,它将创build一个新的文件进行读写。

(empshasis我。)

r +,w +和a +都是可读写的。 w +截断文件。 a +追加。 如果文件不存在,则w +和a +都将创build该文件。)

访问模式r+w+a+读写模式打开文件,但有以下区别:

r+从文件的开始处开始,但不会创build新文件(如果不存在)。

如果文件存在,则w+将现有文件截断为零,否则创build一个新文件。

如果文件存在,则a+从文件结尾开始,否则将创build一个新文件。

答案:r +和w +都可以读取,写入文件,但r +不会截断(删除)文件的内容,也不会创build新文件,如果这个文件在w +中不存在,则截断文件的内容并且如果这样的文件不存在,则创build一个新的文件。

为了我自己的利益/作参考:

 |mode|reads|writes|starts writing at|if preexists |r |yes | |n/a |ok |r+ |yes |yes |beginning |fail |w | |yes |beginning |overwrite |w+ |yes |yes |beginning |overwrite |a | |yes |end |append |a+ |yes |yes |end |append