“文件”对象(即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