2009-10-17 9 views

答えて

108

http://www.tutorialspoint.com/ruby/ruby_input_output.htm

が引用する参照:

R
読み取り専用モード。ファイルポインタは、ファイルの先頭に置かれます。これがデフォルトモードです。

r +
読み書きモード。ファイルポインタはファイルの先頭にあります。

w
書き込み専用モード。ファイルが存在する場合は、ファイルを上書きします。ファイルが存在しない場合は、新しいファイルを作成して書き込みます。

w +
読み書きモード。 ファイルが存在する場合は、既存のファイルを上書きします。ファイルが存在しない場合は、読み書き用の新しいファイルを作成します。

a
書き込み専用モード。ファイルが存在する場合、ファイルポインタはファイルの最後にあります。つまり、ファイルは追加モードにあります。ファイルが存在しない場合は、書き込み用の新しいファイルを作成します。

a +
読み取りと書き込みモード。 ファイルが存在する場合、ファイルポインタはファイルの最後にあります。ファイルが追加モードで開きます。ファイルが存在しない場合は、読み書き用の新しいファイルを作成します。

(empshasis鉱山。)

R +、+ W、およびA +はすべて読み書きを行います。 w +はファイルを切り捨てます。 a +が追加されます。ファイルが存在しない場合は、w +とa +が両方ともファイルを作成します)。

+1

おかげで、あなたが '' W +手段が追加することを、いくつかの誤解があることが私のために確認されています。 – akostadinov

+0

@Jonathan Figland [こちら]をチェックしてください(http://stackoverflow.com/questions/42757267/why-does-a-mode-in-ruby-and-python-append-mode-start-from-the-begin- of-file) – Ratatouille

+0

@Ratatouilleその質問は閉じられたようです。主な問題に対処するためのコメントがあります。問題は解決していますか? –

6

回答: r +とw +ファイルの書き込みはできますが、r +はファイルの内容を切り捨て(削除)しません。そのようなファイルが存在しない場合は、新しいファイルを作成するだけでなく、そのファイルの内容を切り捨てる際に、そのファイルが存在しない場合は新しいファイルを作成します。

10

アクセスモードr+w+a+内のファイルを読み込み、書き込みモード開きますが、以下の違いが:

r+ファイルの先頭から始まりますが、それはdoesnの場合は、新しいファイルを作成しません存在しません。

w+ファイルが存在する場合は既存のファイルを長さゼロに切り捨て、それ以外の場合は新しいファイルを作成します。

a+ファイルが存在する場合はファイルの最後に開始し、それ以外の場合は新しいファイルを作成します。参照目的のために自分の利益のために

4

/:

|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 
関連する問題